1. 程式人生 > >python第四十八課——類函數和對象函數

python第四十八課——類函數和對象函數

@class 普通 style 實現 成員 class 思考 能夠 num


5.類函數和對象函數

類函數:在定義函數的上面一行書寫@classmethod,特點:沒有self 有cls

對象函數:定義在class中的普通的def函數


演示類函數和對象函數的定義使用:

總結:

在對象函數中,既能夠直接使用對象屬性和對象函數,也能夠使用類屬性和類函數

定義類函數,需要在函數的上面追加@classmethod註解符號,這樣它的參數位置就有一個cls關鍵字

表示類的意思,而原本我們看到的self就不再了

在類函數中,只能直接使用類屬性和類函數,不能直接使用對象屬性和對象函數;

如果我們想要使用對象的成員,那麽可以先實例化對象(用cls來完成),然後就可以實現對象內容的調用了
class Demo:
    
#類屬性 a=100 def __init__(self,b): #對象屬性 self.b=b #對象函數 def func1(self): print(我是對象函數func1...) def func2(self): ‘‘‘ 思考: 對象函數中能不能調用類屬性和對象屬性? 能; 對象函數中能不能調用類函數和對象函數? ‘‘‘ print(self.a)
print(self.b) self.func1() self.func3() @classmethod def func3(cls): print(我是類函數func3...) @classmethod def func4(cls): ‘‘‘ 思考: 類函數中能不能調用類屬性和類函數? 能; 類函數中能不能調用對象屬性和對象函數? 不能;
‘‘‘ print(cls.a) cls.func3() print(cls.b) cls.func1() ‘‘‘ 思考:能不能在類函數func4中去使用對象屬性b和對象函數func1()呢? 可以;只要有對象就能實現; 先實例化對象-->cls(num) ‘‘‘ d=cls(998) print(d.b) d.func1() #實例化對象 d=Demo(200) d.func2() #類名調用類函數 Demo.func4()

python第四十八課——類函數和對象函數