簡體   English   中英

如何在 object 創建時增加父 class 中的 static 計數器

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM