Python實例方法、類方法和類方法靜態(tài)方法淺析
回復(fù)“Go語言”即可獲贈從入門到進階共10本電子書
一、前言
類方法也可以進行更細致的劃分,具體可分為類方法、實例方法和靜態(tài)方法。
二、案例詳解
實例方法
通常情況下,在類中定義的方法默認都是實例方法。
例:
class CLanguage:# 類構(gòu)造方法,也屬于實例方法def __init__(self):self.name = "百度"self.add = "www.baidu.com"# 下面定義了一個say實例方法def say(self):print("正在調(diào)用 say() 實例方法")
調(diào)用say()方法,實現(xiàn)功能。
clang = CLanguage()clang.say()
運行結(jié)果:

注:
實例方法最少也要包含一個 self 參數(shù),用于綁定調(diào)用此方法的實例對象。
類方法
Python 類方法和實例方法相似,它最少也要包含一個參數(shù),只不過類方法中通常將其命名為 cls,Python 會自動將類本身綁定給 cls 參數(shù)(注意,綁定的不是類對象)。所以在調(diào)用類方法時,無需顯式為 cls 參數(shù)傳參。
和實例方法最大的不同在于,類方法需要使用@classmethod修飾符進行修飾。
例:
class ass:#類構(gòu)造方法,也屬于實例方法def __init__(self):self.name = "百度"self.add = "www.baidu.com"#定義了一個類方法@classmethoddef info(cls):print("正在調(diào)用類方法",cls)
如果沒有 @classmethod,則 Python 解釋器會將 fly() 方法認定為實例方法,而不是類方法。
類方法推薦使用類名直接調(diào)用。
#使用類名直接調(diào)用類方法ass.info()#使用類對象調(diào)用類方法clang = ass()clang.info()
運行結(jié)果:

類靜態(tài)方法
靜態(tài)方法定義在類這個空間(類命名空間)中,而函數(shù)則定義在程序所在的空間(全局命名空間)中。
靜態(tài)方法沒有類似 self、cls 這樣的特殊參數(shù),因此 Python 解釋器不會對它包含的參數(shù)做任何類或?qū)ο蟮慕壎ā?/span>
靜態(tài)方法需要使用@staticmethod修飾。
例:
class ass:def info(name, add):print(name, add)
靜態(tài)方法可以使用類名,類對象兩種方式進行調(diào)用。
# 使用類名直接調(diào)用靜態(tài)方法ass.info("百度1", "www.baidu.com")# 使用類對象調(diào)用靜態(tài)方法clang = ass()clang.info("百度2", "www.baidu.com")
運行結(jié)果:

三、總結(jié)
本文基于Python基礎(chǔ),介紹了實例方法、類方法和類方法靜態(tài)方法,通過實際案例講解了三種方法的不同用法,通過代碼演示,運行效果圖的展示,能夠幫助讀者更好的理解。
歡迎大家積極嘗試,有時候看到別人實現(xiàn)起來很簡單,但是到自己動手實現(xiàn)的時候,總會有各種各樣的問題,切勿眼高手低,勤動手,才可以理解的更加深刻。
代碼很簡單,希望對你學(xué)習(xí)有幫助。
------------------- End -------------------
往期精彩文章推薦:

歡迎大家點贊,留言,轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持
想加入Go學(xué)習(xí)群請在后臺回復(fù)【入群】
萬水千山總是情,點個【在看】行不行
