詳解Python中的靜態(tài)方法與類成員方法
前言
因為Python的水平目前一直是處于能用階段,平時寫的腳本使用的Python的寫法也比較的簡單,沒有寫過稍微大一點的項目。對Python中的類,類之間的組織關(guān)系,整個項目中類之間如何耦合還缺乏認(rèn)識。打算讀一讀別人寫的Python代碼來學(xué)習(xí)一下Python在工程中的應(yīng)用,提升自己的技術(shù)水平。選取的Python代碼是Python爬蟲代碼,github地址。這個代碼剛好是符合跳出我的舒適區(qū)的水平的代碼,因此很適合我目前的水平來學(xué)習(xí)。
在Python2.4之后,主要使用裝飾器來實現(xiàn)靜態(tài)方法和類方法。
裝飾器使用@操作符,例子如下:
class Example: val1 = "Value 1" def __init__(self): self.val2 = "Value 2" @staticmethod def staticmd(): print("靜態(tài)方法,無法訪問Value1和Value2") @classmethod def classmd(cls): print('類方法,類:'+str(cls)+",val1:"+cls.val1+",無法訪問val2的值") example = Example() example.staticmd() #實例調(diào)用靜態(tài)方法,無法訪問實例變量val1和val2 example.classmd() #實例調(diào)用類方法,輸出結(jié)果:類方法,類:<class '__main__.Example'>,val1:Value 1,無法訪問val2的值 Example.classmd() #類調(diào)用類方法,輸出結(jié)果:類方法,類:<class '__main__.Example'>,val1:Value 1,無法訪問val2的值 example.val1 = "The instance value1 changed" example.classmd() #類調(diào)用類方法,輸出結(jié)果:類方法,類:<class '__main__.Example'>,val1:Value 1,無法訪問val2的值 Example.val1 = "The class value2 changed" example.classmd() #類調(diào)用類方法,輸出結(jié)果:類方法,類:<class '__main__.Example'>,val1:The class value2 changed,無法訪問val2的值 Example.classmd() #類調(diào)用類方法,輸出結(jié)果:類方法,類:<class '__main__.Example'>,val1:The class value2 changed,無法訪問val2的值
相信從上面的例子中,就可以很明顯地分辨出靜態(tài)方法和類方法的區(qū)別了。
先是在語法上面的區(qū)別:
- 靜態(tài)方法不需要傳入self參數(shù),類成員方法需要傳入代表本類的cls參數(shù);
- 靜態(tài)方法是無妨訪問實例變量和類變量的,類成員方法無法訪問實例變量但是可以訪問類變量
使用的區(qū)別:
由于靜態(tài)方法無法訪問類屬性,實例屬性,相當(dāng)于一個相對獨立的方法,跟類其實并沒有什么關(guān)系。這樣說來,靜態(tài)方法就是在類的作用域里的函數(shù)而已。
總結(jié)
好了,以上就是這篇文章的全部內(nèi)容了,最后,如何在實際的項目中使用靜態(tài)方法和類方法,這個等一段時間有更深的體會再和大家交流吧。希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助。
- Python面向?qū)ο笾o態(tài)屬性、類方法與靜態(tài)方法分析
- python中的實例方法、靜態(tài)方法、類方法、類變量和實例變量淺析
- python的類方法和靜態(tài)方法
- 淺談python中的實例方法、類方法和靜態(tài)方法
- Python實例方法、類方法、靜態(tài)方法的區(qū)別與作用詳解
- 深入解析python中的實例方法、類方法和靜態(tài)方法
- Python探索之靜態(tài)方法和類方法的區(qū)別詳解
- Python3.0中普通方法、類方法和靜態(tài)方法的比較
- Python 實例方法、類方法、靜態(tài)方法的區(qū)別與作用
- Python 面向?qū)ο箪o態(tài)方法、類方法、屬性方法知識點小結(jié)
相關(guān)文章
Python使用sklearn實現(xiàn)的各種回歸算法示例
這篇文章主要介紹了Python使用sklearn實現(xiàn)的各種回歸算法,結(jié)合實例形式分析了Python使用sklearn庫實現(xiàn)的決策樹回歸、線性回歸、SVM回歸、KNN回歸、隨機森林回歸等各種回歸算法,需要的朋友可以參考下2019-07-07python操作csv格式文件之csv.DictReader()方法
這篇文章主要介紹了python操作csv格式文件之csv.DictReader()方法,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,感興趣的小伙伴可以參考一下2022-06-06python學(xué)習(xí)--使用QQ郵箱發(fā)送郵件代碼實例
這篇文章主要介紹了python使用QQ郵箱發(fā)送郵件,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04通過Python的speech_recognition庫將音頻文件轉(zhuǎn)為文字
recognize_google()?是Google提供的一種語音識別API,可以識別音頻文件或麥克風(fēng)錄制的語音,并將其轉(zhuǎn)換為文本,這篇文章主要介紹了通過Python的speech_recognition庫將音頻文件轉(zhuǎn)為文字,需要的朋友可以參考下2023-05-05