防止實例之間共享類別資料
在物件導向程式設計中,為類別的不同實例維護不同的資料至關重要。但是,預設情況下,類別級變數在所有實例之間共享,這可能會導致意外行為。
理解問題
考慮以下代碼:
兩個實例共享相同的列表,而不是獲取x 和y 的單獨列表。發生這種情況是因為 list 被宣告為類別變量,因此所有實例都引用相同的底層物件。
解決方案:實例變數
為了避免共享數據,實例變數應該被利用。實例變數在類別的建構子 (__init__) 中定義。以下是修正後的程式碼:
在這種情況下,為建構函式中的每個實例初始化清單屬性,建立單獨的副本。現在,列印語句透過 x 和 y 的不同清單準確地反映了預期行為。
以上是如何防止 Python 中的物件實例之間共享類別資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!