類屬性 類方法(筆記)

2021-09-29 14:08:20 字數 1121 閱讀 5133

建立乙個物件時,建立出來的物件叫做例項,例項的屬性在物件的__init__函式中初始化,每個新建立的物件,其實例屬性都儲存在該物件的記憶體中。例項方法則儲存在物件的類的記憶體中

python 中一切皆物件。類也是一種特殊的物件

類屬性:屬於類自己的屬性,直接在類名的下方使用賦值語句即可定義,引用時直接類名.類屬性名。類屬性通常用來記錄與這個類相關的特徵

3.1 引用類屬性時,也可以使用物件.類屬性名(不推薦)

3.2 類屬性的獲取,存在乙個向上查詢機制。物件.類屬性名這種方式會首先在物件內部尋找,如果沒有就向上一級類中尋找。類屬性並不儲存在物件的記憶體中,這種方法能夠搜尋到類屬性,得益於向上查詢機制

3.3物件.類屬性名的陷阱:當使用物件.類屬性 = 值賦值語句,只會給物件新增乙個屬性,而不會影響到類屬性的值

類方法:針對類物件定義的方法,在類方法內部可以直接訪問類屬性或者呼叫其他的類方法,語法如下:

@classmethod

def 類方法名(cls)

:pass

4.1 類方法需要使用修飾器@classmethod來標識,告訴直譯器這是乙個類方法

4.2 類方法的第乙個引數必須為cls,其作用與含義和self類似。在類方法內部,可以使用 **cls. ** 呼叫類屬性和其他的類方法(在例項方法中要呼叫類方法需要採用 **類名.類屬性)

5. 靜態方法:如果某乙個方法不需要訪問例項屬性和呼叫例項方法,也不需要訪問類屬性和呼叫類方法,那麼可以把這個方法封裝成為乙個靜態方法,語法如下:

@staticmethod

def 靜態方法名():

pass

5.1 靜態方法需要使用修飾器@staticmethod來標識,告訴直譯器這是乙個靜態方法

5.2 靜態方法不需要指定第乙個引數

5.3 可以通過類名.靜態方法名來呼叫靜態方法

Python學習筆記 類 類方法 類屬性

類 類方法 類屬性練習 class student company xx大學 類屬性 count 0 類屬性 def init self,name,score 初始化 給各屬性賦值 self.name name 例項屬性 self.score score student.count 1def say...

類屬性與類方法

一 屬性 盡量把需要使用者傳入的屬性作為例項屬性,而把同類都一樣的屬性作為類屬性。例項屬性在每創造乙個例項時都會初始化一遍,不同的例項的例項屬性可能不同,不同例項的類屬性都相同。從而減少記憶體。1 例項屬性 最好在 init self,中初始化 內部呼叫時都需要加上self.外部呼叫時用instan...

類屬性和類方法

當乙個屬性 方法被static修飾的時候,就叫做類屬性 類方法,又叫做靜態屬性 靜態方法 沒有被static修飾的屬性,就叫物件屬性 物件方法,又叫例項屬性 例項方法和非靜態屬性 非靜態方法。當乙個屬性被宣告成類屬性,那麼所有的物件,都共享乙個值,所有物件都可以修改這個值,一經修改前面的值將會被丟棄...