首頁 >後端開發 >Python教學 >實例變數與類別變數:Python 中應該在哪裡宣告變數?

實例變數與類別變數:Python 中應該在哪裡宣告變數?

Barbara Streisand
Barbara Streisand原創
2024-10-26 13:33:02185瀏覽

  Instance vs. Class Variables: Where Should You Declare Variables in Python?

內部和外部的變數init

在Python 類別中聲明變數的位置會顯著影響其行為。考慮以下兩個類別:

<code class="python">class WithClass():
    def __init__(self):
        self.value = "Bob"
    def my_func(self):
        print(self.value)

class WithoutClass():
    value = "Bob"
    def my_func(self):
        print(self.value)</code>

類別變數與實例變數

這兩個類別之間的主要差異在於宣告變數值的位置。在 WithClass 中,它在 __init__ 方法中聲明,使其成為實例變數。這意味著 WithClass 的每個實例都將擁有自己獨立的 value 屬性副本。

另一方面,在 WithoutClass 中,value 屬性在 __init__ 方法之外聲明,使其成為類別變數。因此,WithClass 的所有實例將共用 value 屬性的同一個實例。

初始化方法

WithClass 中的 __init__ 方法充當每個屬性的初始化器物件實例。建立實例時,將呼叫 __init__ 方法,並向 self.value 屬性指派值「Bob」。然後,該值將儲存在實例中,並可供物件內的其他方法使用。

後果

在何處聲明變數的決定可能會對您的程式碼產生影響。程序的行為。如果您需要類別的每個實例對於特定屬性都有自己的唯一值,則應在 __init__ 方法中將其宣告為實例變數。或者,如果一個類別的所有實例都應共用相同的屬性值,則可以在 __init__ 方法之外將其宣告為類別變數。

因此,關鍵區別在於您是否希望該變數是在類別的所有實例之間共用(類別變數),或者對於每個單獨的實例都是唯一的(實例變數)。

以上是實例變數與類別變數:Python 中應該在哪裡宣告變數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn