B中的不同A实例(Python)

Sta*_*als 1 python class instance

在这样的情况下,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 
Run Code Online (Sandbox Code Playgroud)

我应该怎么做才能在B中有两个不同的A实例?

mul*_*ces 6

B定义为是,它的属性a属于类本身,而不是每个单独的实例.你需要做这样的事情:

class B:
    def __init__(self):
        self.a = A()
Run Code Online (Sandbox Code Playgroud)

获得A每个人的单独实例B.