1. 程式人生 > >python__基礎 : 類屬性,類方法,靜態方法

python__基礎 : 類屬性,類方法,靜態方法

調用 但是 code 靜態方法 assm 基礎 new 第一個 方式

類屬性 定義在類裏面,方法外面的屬性,一般屬於這個類,如下面的 num 就是類屬性:

class Test:
    num = 0

類屬性用 實例.類屬性 或者 類.類屬性 都可以訪問,

如 a = Test() 用 a.num 可以訪問 ,但是如果這個實例有一個實例屬性 self.num 那麽這樣訪問的其實是 self.num ,

所以一般用 類.屬性 即這樣 Test.num 訪問

類方法, 類方法是屬於這個類的方法,定義方式為 前面加上裝飾器 @classmethod 且第一個參數傳遞的是當前類的名字,和self 差不多,只不過一般用 cls 來表示 :

class Test:
    num 
= 0 @classmethod def setNum(cls, newNum): cls.num = newNum

這個 setNum 方法就是類方法,可以通過調用 Test.setNum(100) 這種方式來把類屬性 num 的值改為 100

當然也可以通過 實例.setNum(100) 來調用,但是如果有個實例方法也是test這個名字,那麽調用的將會是實例方法而不是類方法.

靜態方法:如果一個方法,和類屬性實例屬性類方法實例方法都沒有什麽關系,如 只是打印一句話,那麽可以把他作為一個靜態方法,前面需要加上裝飾器 @staticmethod :

class Test:
    @staticmethod
    def printInfo():
        print(
this is a staticmethod)

這個靜態方法和類方法一樣,可以用實例調用也可以用類調用,但是一般用 類.靜態方法 調用,因為如果有相同名字的實例方法,也是優先調用實例方法.

python__基礎 : 類屬性,類方法,靜態方法