[英]Different instances of A in B (Python)
在這種情況下,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 本身,而不是每個單獨的實例。 你需要做這樣的事情:
class B:
def __init__(self):
self.a = A()
為每個B
獲取A
的單獨實例。
您需要在每個實例的基礎上初始化它,而不是像現在這樣在 class 級別初始化它:
class B:
def __init__(self):
self.a = A()
您正在使用相當於 static 變量的值。 嘗試這個:
class A:
def __init__(self):
self.var = 1
class B:
def __init__(self):
self.a = A()
您在第一次解析A()
變量時將其初始化為 static class 變量。 每個B()
實例都有一個A()
實例,它應該在B()
的__init__
中
class A:
def __init__(self):
self.var=1
class B:
def __init__(self):
self.a = A()
b1=B()
b2=B()
b1.a.var=2 # changing "var" in b1 would not change it in b2
print(b2.a.var) # now prints 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.