[英]How to increment static counter in parent class on object creation
我正在嘗試在父對象 class 中實現一個 static 計數器,但該計數器在所有對象中具有相同的值。
在下面的示例中,我希望每次創建 object 時都會遞增id
。 相反,我為每個 object 獲得了相同的id
(在本例中為18
)。
為什么 static id
屬性沒有按預期運行? 它在超類的構造函數之外聲明。 我希望每個self.id
中的 self.id 繼承 static 增量值,因此它應該隨着每個 object 的創建而改變。
我需要為每個對象編號。
class Cheese:
id = 17
def __init__(self):
self.id += 1
class Cheddar(Cheese):
def __init__(self, name):
super().__init__()
self.name_ = name
def main():
cabot_clothbound = Cheddar("Cabot Clothbound")
kerrygold = Cheddar("Kerrygold")
tillamook = Cheddar("Tillamook")
print(f"Cabot Clothbound: {cabot_clothbound.id}")
print(f"Kerrygold: {kerrygold.id}")
print(f"Tillamook: {tillamook.id}")
main()
預計 Output:
18
19
20
實際Output
18
18
18
嘗試將您的代碼更改為:
class Cheese:
id = 17
def __init__(self):
Cheese.id += 1
self.id = Cheese.id
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.