1
如果我有一个从基类,它的init()添加到数组中的项继承,如下一个子类:为什么在Python中派生类的两个不同实例与基类共享相同的数据属性值?
class TestBaseClass :
arr = []
def __init__(self) :
print self.arr
self.arr.append(1)
print self.arr
return
class TestChildClass1(TestBaseClass) :
foo = 1
然后我觉得奇怪的是,当我实例孩子上课两次,
test1 = TestChildClass1()
test2 = TestChildClass1()
第二个似乎没有一个空数组,但包含由第一个添加的值1。
为什么这个基类实例被两者共享而没有创建为新实例?这似乎并不直观,人们如何期望继承的行为。
错误的答案,即使在实例变量的情况下,相同的变量将在派生类之间共享 – SEDaradji