【发布时间】:2021-09-15 13:51:58
【问题描述】:
我正在尝试理解 python 中的类类型。就在我以为我理解它的时候,我发现了这个。我不明白为什么当我使用 append 方法时,它会被保存为其他变量。示例:
class flower:
tpe="standard"
register=[]
def __init__(self):
pass
amapola=flower()
amapola.register.append("Amapola")
amapola.tpe="spring"
print(f"Type: {amapola.tpe}, register= {amapola.register}")
cactus=flower()
cactus.register.append("Cactus")
print(f"Type: {cactus.tpe}, register= {cactus.register}")
输出:
Type: spring, register= ['Amapola']
Type: standard, register= ['Amapola', 'Cactus']
我不明白为什么“amapola”会列在“cactus”注册表中。我认为当创建变量“仙人掌”时,列表将设置为零。或者另一方面,如果寄存器在被变量“amapola”修改时被保存,为什么在“cactus”中如果之前也被修改过,它会返回“standard”而不是“spring”?
【问题讨论】: