我在list
类中使用Python
个对象观察到一种奇怪的行为。
class Test:
val = []
def __init__(self):
self.val.append(42)
a = Test()
b = Test()
print b.val
上述计划的输出为[42,42]
,而不是预期的[42]
。
class Test:
val = 0
def __init__(self):
self.val+=5
a = Test()
b = Test()
print b.val
在这种情况下,输出为预期的5
。
按照上面的规则显示,该程序应该给出输出10
。反之亦然,上述输出应仅为[42]
。
如果实例化了多个相同类型的对象,那么list
类型对象在不同对象中是如何访问的?这完全违背了我的OOP
概念。