在这种情况下,b1 和 b2 都有相同的 A 实例。
class A:
def __init__(self):
self.var=1
class B:
a=A()
def __init__(self):
pass
b1=B()
b2=B()
b1.a.var=2 #changing "var" in b1 would also change it in b2
print(b2.a.var) # prints 2
我应该怎么做才能在 B 中拥有 2 个不同的 A 实例?
请您参考如下方法:
按原样定义B,它的属性a 属于类本身,而不是每个单独的实例。你需要做这样的事情:
class B:
def __init__(self):
self.a = A()
为每个 B 获取单独的 A 实例。
