首頁 > 後端開發 > Python教學 > Python 中的類別變數和實例變數有何不同?

Python 中的類別變數和實例變數有何不同?

Patricia Arquette
發布: 2024-10-29 07:18:30
原創
437 人瀏覽過

How do Class and Instance Variables Differ in Python?

理解Python 中的類別和實例變數

物件導向程式設計中的關鍵概念之一是類別變數和實例變數之間的區別。在 Python 中,這些變數在管理類別內的資料方面發揮著至關重要的作用。然而,根據它們的定義方式,它們的行為可能會產生混淆。

類別變數與實例變數

  • 類別變數:在類別內部但外部任何聲明的變數稱為類別變數。它們在類別的所有實例之間共享,無論其狀態如何。
  • 實例變數:使用 self 在類別的方法中宣告的變數關鍵字,稱為實例變數。它們特定於類別的每個實例。

示例1:類變量

<code class="python">class testClass():
    list = []
    def __init__(self):
        self.list.append('thing')</code>
登入後複製

在此示例中,列表 變量是類變量,因為它是在任何方法之外定義的。因此,當建立該類別的新實例時,它會存取相同的 list 變數及其內容。因此,兩個實例(pf)的輸出為:

['thing']
['thing', 'thing']
登入後複製

範例2:實例變數

<code class="python">class testClass():
    def __init__(self):
        self.list = []
        self.list.append('thing')</code>
登入後複製

在此範例中,list 變數是在__init__() 方法中使用self 定義的。因此,它成為一個實例變數。每個實例都有自己單獨的 list 變數。因此,每個實例的輸出為:

['thing']
['thing']
登入後複製

類別和實例變數的命名解析

理解類別和實例變數行為的關鍵在於Python 如何解析名稱。當您存取 self.list 時,Python 首先檢查實例本身是否存在 list 屬性。如果找不到,則檢查類別定義。

這解釋了為什麼在第一個範例中,list 被視為類別變量,而在第二個範例中,它成為實例變數。

總之,變數定義在類別或方法中的位置決定了它們是類別變數還是實例變數。理解這種差異對於在物件導向的 Python 程式碼中有效管理資料至關重要。

以上是Python 中的類別變數和實例變數有何不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板