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

歡迎訪問 生活随笔!

生活随笔

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

python

Python笔记 · self,cls,实例方法,静态方法,类方法

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

1. self和cls

首先,self和cls并不是關鍵字,而是約定的統一命名規范。簡單說:self用于指代實例/對象(Instance/Object),cls用于指代類(Class)。兩者經常以參數形式出現在類方法中,通過它們,類方法可以讀取或修改實例或類的狀態,以及調用相關方法。

與self和cls關系緊密的是方法的類型,因為兩者經常會以參數形式出現在類的方法中,由于它們是實例與類之間的差別,因此也會自然體現到了類的方法上,即:類的方法也會分實例/對象級別和類級別,前者在方法體內引用self,后者在方法體內引用cls。

2. 實例方法,靜態方法,類方法

所以,我們來看一下Python中類方法的分類:

  • 實例方法(Instance Methods)

最常見的方法,隸屬于實例/對象,僅當對象實例化之后方可調用,內部維護的狀態(各字段)也都是實例級別的。無需函數裝飾器修飾。

  • 靜態方法(Static Methods)

類級別的方法,與其編程語言中使用static修飾的方法類似,使用@staticmethod裝飾器修飾。靜態方法既不能接受self也不能接受cls作為參數,因此,靜態方法即不能讀取或修改實例的狀態,也不能讀取或修改類的狀態。從這個角度上講,靜態方法更像是一段獨立的“過程性代碼”或“腳本”的封裝,完全無狀態。

  • 類方法(Class Method)

同樣是類級別的方法,與其編程語言中使用static修飾的方法類似,使用@classmethod裝飾器修飾。不同于靜態方法,類方法可以接受cls作為參數,這就意味著類方法可以讀取或修改類的狀態,這是其與靜態方法最大的不同之處。

下圖匯總了三種方法的描述:


參考:

Classes and Objects in Python

cls vs self — Method Types In Python

Python’s Instance, Class, and Static Methods Demystified

總結

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

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