2024-05-21 02:05:40 发布
网友
在这种情况下,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中有两个不同的A实例?你知道吗
你使用的是一个静态变量。试试这个:
class A: def __init__(self): self.var = 1 class B: def __init__(self): self.a = A()
当B按原样定义时,它的属性a属于类本身,而不是每个实例。你需要这样做:
B
a
class B: def __init__(self): self.a = A()
为每个B获取A的单独实例。你知道吗
A
您需要在每个实例的基础上对其进行初始化,而不是像现在这样在类级别进行初始化:
你使用的是一个静态变量。试试这个:
当
B
按原样定义时,它的属性a
属于类本身,而不是每个实例。你需要这样做:为每个
B
获取A
的单独实例。你知道吗您需要在每个实例的基础上对其进行初始化,而不是像现在这样在类级别进行初始化:
相关问题 更多 >
编程相关推荐