Python3的靜態方法和類方法


靜態方法和類方法的創建:

將它們分別包裝在staticmethodclassmethod類的對象中。

靜態方法的定義中沒有參數self,可直接通過類來調用。

類方法的定義中包含類似於self的參數,通常被命名為cls。對於類方法,也可通過對象直接調用,但參數cls將自動關聯到類。

示例:

 1 class MyClass:
 2 
 3     def smeth():
 4         print("This is a static method")
 5 
 6     smeth = staticmethod(smeth)
 7 
 8     def cmeth(cls):
 9         print("This is a class method of",cls)
10     cmeth = classmethod(cmeth)

像這樣手工包裝盒替換方法有點繁瑣。所以引入裝飾器(裝飾器可用於包裝任何可調用的對象,並且可用於方法和函數),可指定一個或多個裝飾器,為此可在方法(或函數)前面使用運算符@列出這些裝飾器,

指定多個裝飾器時,應用的順序與列出的順序相反(從后往前調用)

1 class MyClass:
2 
3     @staticmethod
4     def smeth():
5         print("This is a static method")
6 
7     @classmethod
8     def cmeth(cls):
9         print("This is a class method of",cls)

定義這些方法后,就可像下面那樣使用它們(無需實例化類):

This is a static method
This is a class method of <class '__main__.MyClass'>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM