国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

淺談python 類方法/靜態方法

瀏覽:3日期:2022-07-10 18:25:46

1.類方法

類方法是從屬于'類對象'的方法。類對象可以通過裝飾器@classmethod來定義,具體格式如下:

@classmethoddef 類方法名(cls [, 形參列表]):方法體

要點如下:

@classmethod必須位于方法的上面一行 第一個參數cls(class的縮寫,和前面筆記介紹的self類似),必須要有,代指'類對象'本身。 調用類方法格式:類名.類方法名(參數列表)。參數列表中不需要也不能給cls參數進行傳值,解釋器會自動賦值。 類方法中可以訪問實例屬性和實例方法會導致錯誤,因為有類不一定有對象。 子類繼承父類方法時,傳入cls是自身對象,而非父類對象。(后面的筆記會有介紹)

代碼示例:

class Student: count = 0 # 類屬性 '''定義方法''' @classmethod def print_count(cls): '''cls參數代表類對象''' print(Student.count)'''調用類方法'''print('調用時,不傳遞cls參數')Student.print_count()

運行結果:

調用時,不傳遞cls參數0

2.靜態方法

在python中,允許定義于”類對象“無關的方法,稱為'靜態方法'。'靜態方法'和在模塊中定義的普通方法沒有什么區別,只不過'靜態方法'放到了'類的名字變量空間',需要通過類調用。靜態方法通過裝飾器@staticmethod來定義,格式如下:

@staticmethoddef 靜態方法名([形參列表]):方法體

要點如下:

@staticmethod必須位于方法上面一行 調用靜態方法格式:類名.靜態方法名(參數列表) 靜態方法中訪問實例屬性和實例方法會導致錯誤

代碼示例:

class Student: count = 0 # 類屬性 @staticmethod def add(a, b): '''與類無關的靜態方法''' '''因為靜態方法從屬于類,所以是可以操作類屬性和類方法''' print('{0}+{1}={2}'.format(a, b, a+b)) return a + b# 調用靜態方法Student.add(20, 30)

運行結果:

20+30=50res=50

3.實例方法/類方法/靜態方法的區別

class MyClass: # 類屬性 class_attr = 0 def __init__(self, obj_attr): self.obj_attr = obj_attr def instance_method(self): return 'instance method called', self @classmethod def class_method(cls): return 'class method called', cls @staticmethod def static_method(): return 'static method called'print('調用實例方法')obj1 = MyClass('obj_attr1')print(obj1.instance_method())print('--' * 20)print('調用類方法')print(MyClass.class_method())print('--' * 20)print('調用靜態方法')print(MyClass.static_method())

運行結果:

調用實例方法(’instance method called’, <__main__.MyClass object at 0x10ca93310>)----------------------------------------調用類方法(’class method called’, <class ’__main__.MyClass’>)----------------------------------------調用靜態方法static method called

注意: 以下討論的屬性、方法均指公開的類型,非私有的。

實例方法:

能讀取、修改實例屬性 能調用實例方法 能讀取、修改類屬性 能調用類方法 能調用類靜態方法 調用方式:對象名.實例方法名(參數列表),編譯器自動傳遞self參數

類方法:

不能讀取、修改實例屬性 不能用實例方法 能讀取、修改類屬性 能調用類方法 能調用類靜態方法 調用方式:類名.類方法名(參數列表),編譯器自動傳遞cls參數

靜態方法:

不能讀取、修改實例屬性 不能用實例方法 能讀取、修改類屬性 能調用類方法 能調用類靜態方法 調用方式: 類名.靜態方法名(參數列表),不需要cls參數 類方法和靜態方法,功能非常相近,可以相互替代, 但是從規范的角度來說,請按照實例方法操作對象,類方法操作類,靜態方法為和類無關的通用方法。

以上就是淺談python 類方法/靜態方法的詳細內容,更多關于類方法/靜態方法的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 国产欧美视频综合二区 | 美国免费三片在线观看 | 精品国产区一区二区三区在线观看 | 成人做爰全过程免费看网站 | 成年人在线观看免费 | 欧美亚洲国产片在线观看 | 久久99亚洲精品久久频 | 国产大乳孕妇喷奶水在线观看 | 亚洲国产一区二区在线 | 免费一级毛片在播放视频 | 久久精品一区二区三区中文字幕 | 久久99精品久久久久久野外 | 国产亚洲精品高清在线 | 午夜三级a三级三点在线观看 | 日韩福利视频精品专区 | 成人午夜影院在线观看 | 午夜福利国产一级毛片 | 国产盗摄视频 | 在线亚洲综合 | 全午夜免费一级毛片 | 免费高清特级毛片 | 亚洲高清一区二区三区四区 | 免费看成人播放毛片 | 久久免费网 | 仑乱高清在线一级播放 | 91情国产l精品国产亚洲区 | 日本精品在线观看 | 亚洲精品美女在线观看 | 一级一片免费播放 | 久草视频在线看 | 免费特黄一区二区三区视频一 | 亚洲精品国产专区一区 | 亚洲韩精品欧美一区二区三区 | 日本一区毛片免费观看 | 久久se精品一区二区国产 | 91福利精品老师国产自产在线 | 亚洲欧洲日产国码二区在线 | 神马三级我不卡 | 亚洲成人免费网站 | 久久88香港三级 | 成人国产精品一级毛片视频 |