1. 對象方法:
- a. 怎么聲明:直接聲明在類中
- b. 特點:自帶self參數(shù)尿招,調(diào)用的時候不用傳參茂契,誰調(diào)用指向誰
- c. 怎么調(diào)用:對象.方法()
2. 類方法:
- a. 怎么聲明:聲明函數(shù)前就加@classmethod
- b. 特點:自帶默認(rèn)參數(shù)cls匠襟,調(diào)用的不用傳參,系統(tǒng)會自動調(diào)用當(dāng)前函數(shù)的類傳給它(cls是誰調(diào)用就指向誰)
- c. 怎么調(diào)用: 通過類來調(diào)用雌澄,類.方法()嫁乘,類方法就是用類調(diào)用,類能做的事情扭吁,cls都能做撞蜂,比如創(chuàng)建對象
3. 靜態(tài)方法
- a. 怎么聲明:聲明函數(shù)前加@staticmethod
- b. 特點:沒有默認(rèn)參數(shù)
- c. 怎么調(diào)用:通過類來調(diào)用,類.func()
4. 在類中怎么選擇使用哪種方法:
- 如果實現(xiàn)類中的函數(shù)的功能需要使用對象的屬性侥袜,那么這個函數(shù)就要聲明成對象方法
- 實現(xiàn)函數(shù)的功能不需要對象的屬性的前提下谅摄,如果需要類的字段,就聲明成類方法
- 若既不需要對象屬性系馆,又不需要類的字段送漠,就聲明成靜態(tài)方法
def main():
class Ql_Person: #
num = 61
def __init__(self, x):
self.name = x
@classmethod
def func2(cls): #
print('我是類方法2')
@classmethod
def func1(cls):
print(cls)
print('我是類方法1')
cls.num = 100
@ staticmethod
def func3():
print('我是靜態(tài)方法')
def func4(self):
print(self.name)
print(Ql_Person.num)
Ql_Person.func1()
Ql_Person.func3()
if __name__ == '__main__':
main()
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者