內部和外部的變數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中文網其他相關文章!