我想检查我的全局变量项是否被我的函数 copy() 的值重写
我不知道范围是如何工作的
这里的问题是,当一个类 register() 被调用,并且实例通过证明完成时,该值再次为 [0],这不是我的目标。我想用 de 内部函数的 de 值重写它
class register():
item = [0]
print(f'item before function -> {item} <id> = {id(item)}')
def __init__(self, quantity = '20', fabric_c = 'client', fabric_p = 'own'):
self.quantity = quantity
self.fabric_c = fabric_c
p_c = True
def copy(self):
if p_c == True:
line = self.quantity + ' meters ' + self.fabric_c
item = line
print(f'printing description during execution function -> {line} <id> = {id(item)})')
return item
print(f'item after function -> {item} <id> = {id(item)}')
proof = register()
proof.copy()
print(f'proof.item = {proof.item} outside of class -> {id(proof.item)}')
# [out] : item before function -> [0] <id> = 140627839165312
# [out] : printing description during execution function -> 20 meters client <id> = 140627839182128)
# [out] : proof.item = [0] outside of class -> 140627839165312
而且你也可以看到,内部函数中item的id值,和全局变量item的值是不一样的