python調(diào)用方法必須實例化么
python類中的實例方法和靜態(tài)方法,在調(diào)用時,是有區(qū)別的。靜態(tài)方法可以直接被調(diào)用,而不需要被實例化。
類方法和靜態(tài)方法的區(qū)別在于,Python會自動綁定類方法的第一個參數(shù),類方法的第一個參數(shù)(通常建議參數(shù)名為cls)會自動綁定到類本身;但對于靜態(tài)方法則不會自動綁定。
使用@classmethod修飾的方法就是類方法;使用@staticmethod修飾的方法就是靜態(tài)方法。
下面代碼示范了定義類方法和靜態(tài)方法:
classBird:
#classmethod修飾的方法是類方法
@classmethod
deffly(cls):
print('類方法fly:',cls)
#staticmethod修飾的方法是靜態(tài)方法
@staticmethod
definfo(p):
>>print('靜態(tài)方法info:',p)
#調(diào)用類方法,Bird類會自動綁定到第一個參數(shù)
Bird.fly()#①
#調(diào)用靜態(tài)方法,不會自動綁定,因此程序必須手動綁定第一個參數(shù)
Bird.info('crazyit')
#創(chuàng)建Bird對象
b=Bird()
#使用對象調(diào)用fly()類方法,其實依然還是使用類調(diào)用,
#因此第一個參數(shù)依然被自動綁定到Bird類
b.fly()#②
#使用對象調(diào)用info()靜態(tài)方法,其實依然還是使用類調(diào)用,
#因此程序必須為第一個參數(shù)執(zhí)行綁定
b.info('fkit')
從上面粗體字代碼可以看出,使用@classmethod修飾的方法是類方法,該類方法定義了一個cls參數(shù),該參數(shù)會被自動綁定到Bird類本身,不管程序是使用類還是對象調(diào)用該方法,Python始終都會將類方法的第一個參數(shù)綁定到類本身,如①號、②號代碼的執(zhí)行效果。
上面程序還使用@staticmethod定義了一個靜態(tài)方法,程序同樣既可使用類調(diào)用靜態(tài)方法,也可使用對象調(diào)用靜態(tài)方法,不管用哪種方式調(diào)用,Python都不會為靜態(tài)方法執(zhí)行自動綁定。
在使用Python編程時,一般不需要使用類方法或靜態(tài)方法,程序完全可以使用函數(shù)來代替類方法或靜態(tài)方法。但是在特殊的場景(比如使用工廠模式)下,類方法或靜態(tài)方法也是不錯的選擇。
以上內(nèi)容為大家介紹了python培訓之調(diào)用方法必須實例化么,希望對大家有所幫助,如果想要了解更多Python相關(guān)知識,請關(guān)注IT培訓機構(gòu):千鋒教育。

猜你喜歡LIKE
相關(guān)推薦HOT
更多>>
pythonfor循環(huán)是什么
pythonfor循環(huán)是什么在做遍歷的時候,對于一些數(shù)據(jù)的反復循環(huán)執(zhí)行,我們會用到for循環(huán)的語句。可以說這是新手入門必學的語句之一,在很多基礎(chǔ)循...詳情>>
2023-11-13 07:46:36
pythoncontextmanager()的轉(zhuǎn)換
python中contextmanager()的轉(zhuǎn)換1、說明當發(fā)出請求時,requests庫會在將請求實際發(fā)送到目標服務器之前準備該請求。請求準備包括像驗證頭信息和...詳情>>
2023-11-13 06:34:35
python使用items()遍歷鍵值對
python使用items()遍歷鍵值對字典可以用來存儲各種方式的信息,所以有很多方式可以通過字典的所有鍵值對、鍵或值。說明1、即使通過字典,鍵值對...詳情>>
2023-11-13 04:24:15
python實例方法中self的作用
python實例方法中self的作用說明1、無論是創(chuàng)建類的構(gòu)造方法還是實例方法,最少要包含一個參數(shù)self。2、通過實例的self參數(shù)與對象進行綁定,程序...詳情>>
2023-11-13 03:46:48熱門推薦
python實現(xiàn)WSGI的框架
沸pythonfor循環(huán)是什么
熱python-=是什么意思
熱python打開文本文件有哪些方法?
新pythoncontextmanager()的轉(zhuǎn)換
pythonre是什么?
pythondecimal是什么
python列表追加元素出錯的解決
python使用loguru操作日志
python使用items()遍歷鍵值對
pythonvim中有哪些對象
python實例方法中self的作用
pythonin和is的區(qū)分
pythonos.path.join()函數(shù)的使用
技術(shù)干貨







快速通道 更多>>
-
課程介紹
點擊獲取大綱 -
就業(yè)前景
查看就業(yè)薪資 -
學習費用
了解課程價格 -
優(yōu)惠活動
領(lǐng)取優(yōu)惠券 -
學習資源
領(lǐng)3000G教程 -
師資團隊
了解師資團隊 -
實戰(zhàn)項目
獲取項目源碼 -
開班地區(qū)
查看來校路線