今天,我创建了一个类,它是这样的:
class A:
a=[]
然后我执行了如下代码:
A().a.append(1)
print(A.a)# 1
按道理,改变实例的属性,不会改变类的属性。
但是,Python的机制可能有问题,把所有A对象的a属性都指向了同一个地址,它们是同一个list,而list是可变对象,所以会牵一发而动全身。
解决:把A类改成如下:
class A:
def __init__(self):
self.a=[]
今天,我创建了一个类,它是这样的:
class A:
a=[]
然后我执行了如下代码:
A().a.append(1)
print(A.a)# 1
按道理,改变实例的属性,不会改变类的属性。
但是,Python的机制可能有问题,把所有A对象的a属性都指向了同一个地址,它们是同一个list,而list是可变对象,所以会牵一发而动全身。
解决:把A类改成如下:
class A:
def __init__(self):
self.a=[]