python__基礎 : 類屬性,類方法,靜態方法
阿新 • • 發佈:2018-05-16
調用 但是 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__基礎 : 類屬性,類方法,靜態方法