基本上,我要遍历一堆具有列表类型属性的对象,同时尝试(通过附加)修改每个对象的属性。有人可以解释为什么这样做会如此,以及解决方法是什么?
class A:
def __init__(self,lst=[]):
self.lst = lst
As = []
for i in range(4):
As.append(A())
for a in As:
a.lst.append(1)
print(a.lst)
所需的输出将是:
[1]
[1]
[1]
[1]
实际输出为:
[1]
[1,1]
[1,1,1]
[1,1,1,1]