日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python静态方法,类方法,属性方法,实例方法

發布時間:2023/12/20 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python静态方法,类方法,属性方法,实例方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

DAY 3. 靜態方法,類方法,屬性方法,實例方法

有四種方法,實例方法,類方法,靜態方法,屬性方法

  • 實例方法

實例方法的第一個參數是self,他會指向類的實例化對象,只能被對象調用,如

class Demo:def instanceMethod(self):print("this is a instance method")if __name__ == "__main__":demo = Demo()demo.instanceMethod()

用點調用時不需要傳入對象參數,python會把調用實例方法的對象作為實例方法的第一個參數傳入,等價于

if __name__ == '__main__':demo = Demo()Demo.instanceMethod(demo)
  • 類方法

使用裝飾器@classmethod。第一個參數必須是當前類對象,該參數名一般約定為“cls”,可以使用類(例如C.f())或實例(例如C()。f())調用類方法。 除了類之外,該實例被忽略。 如果為派生類調用類方法,則派生類對象將作為隱含的第一個參數傳遞。

class Demo:@classmethoddef classMethod(self):print("this is a class method")if __name__ == "__main__":demo = Demo()Demo.classMethod()demo.classMethod()

同樣是語法糖,用點調用時會自動把調用類方法的類或對象作為第一個參數傳入

  • 靜態方法

用 @staticmethod 裝飾的不帶 self 參數的方法叫做靜態方法,靜態方法不會接收隱式的第一個參數,類似于c++中的靜態方法,只是占用了類的命名空間,與類沒有聯系,了一使用類名或對象名調用

  • 屬性方法

用來將一個方法變成靜態屬性,使用修飾器@property

class C:def __init__(self):self._x = None@propertydef x(self):"""I'm the 'x' property."""return self._x@x.setterdef x(self, value):self._x = value@x.deleterdef x(self):del self._x

TODO : 有點難改天專門學

總結

方法修飾器調用使用場景(個人理解)
實例方法/只能被對象調用大多數場景
類方法@classmethod能被對象或類調用只操作類屬性
靜態方法@staticmethod能被對象或類調用不操作類中的屬性和方法
屬性方法@property按靜態屬性的方法調用(不加括號)TODO

參考文章
GitHub 關于python的面試題

Python靜態方法、類方法、屬性方法

Python面向對象靜態方法,類方法,屬性方法

Python 實例方法、類方法、靜態方法的區別與作用

python 文檔 staticmethod

python 文檔 classmethod

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的python静态方法,类方法,属性方法,实例方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。