国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

詳解Python中的靜態方法與類成員方法

2019-11-25 16:20:31
字體:
來源:轉載
供稿:網友

前言

因為Python的水平目前一直是處于能用階段,平時寫的腳本使用的Python的寫法也比較的簡單,沒有寫過稍微大一點的項目。對Python中的類,類之間的組織關系,整個項目中類之間如何耦合還缺乏認識。打算讀一讀別人寫的Python代碼來學習一下Python在工程中的應用,提升自己的技術水平。選取的Python代碼是Python爬蟲代碼,github地址。這個代碼剛好是符合跳出我的舒適區的水平的代碼,因此很適合我目前的水平來學習。

在Python2.4之后,主要使用裝飾器來實現靜態方法和類方法。

裝飾器使用@操作符,例子如下:

class Example: val1 = "Value 1" def __init__(self): self.val2 = "Value 2" @staticmethod def staticmd(): print("靜態方法,無法訪問Value1和Value2") @classmethod def classmd(cls): print('類方法,類:'+str(cls)+",val1:"+cls.val1+",無法訪問val2的值")example = Example()example.staticmd() #實例調用靜態方法,無法訪問實例變量val1和val2example.classmd() #實例調用類方法,輸出結果:類方法,類:<class '__main__.Example'>,val1:Value 1,無法訪問val2的值Example.classmd() #類調用類方法,輸出結果:類方法,類:<class '__main__.Example'>,val1:Value 1,無法訪問val2的值example.val1 = "The instance value1 changed"example.classmd() #類調用類方法,輸出結果:類方法,類:<class '__main__.Example'>,val1:Value 1,無法訪問val2的值Example.val1 = "The class value2 changed"example.classmd() #類調用類方法,輸出結果:類方法,類:<class '__main__.Example'>,val1:The class value2 changed,無法訪問val2的值Example.classmd() #類調用類方法,輸出結果:類方法,類:<class '__main__.Example'>,val1:The class value2 changed,無法訪問val2的值

相信從上面的例子中,就可以很明顯地分辨出靜態方法和類方法的區別了。

先是在語法上面的區別:

  • 靜態方法不需要傳入self參數,類成員方法需要傳入代表本類的cls參數;
  • 靜態方法是無妨訪問實例變量和類變量的,類成員方法無法訪問實例變量但是可以訪問類變量

使用的區別:

由于靜態方法無法訪問類屬性,實例屬性,相當于一個相對獨立的方法,跟類其實并沒有什么關系。這樣說來,靜態方法就是在類的作用域里的函數而已。

總結

好了,以上就是這篇文章的全部內容了,最后,如何在實際的項目中使用靜態方法和類方法,這個等一段時間有更深的體會再和大家交流吧。希望本文的內容對大家的學習或者工作能帶來一定的幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 青州市| 南京市| 施甸县| 静海县| 日喀则市| 新乡市| 二连浩特市| 平安县| 邳州市| 讷河市| 新巴尔虎右旗| 启东市| 科技| 理塘县| 新竹县| 垫江县| 万载县| 西青区| 乐业县| 杭锦后旗| 金塔县| 松阳县| 北碚区| 临西县| 新野县| 东乌珠穆沁旗| 德阳市| 迁安市| 车致| 抚顺县| 潜山县| 岢岚县| 清流县| 虞城县| 嫩江县| 穆棱市| 农安县| 鹤山市| 宜兰县| 梁平县| 集安市|