python中的@staticmethod作用及用法


靜態方法的使用場景如果在方法中不需要訪問任何實例方法和屬性純粹地通過傳入參數並返回數據的功能性方法那么它就適合用靜態方法來定義

它節省了實例化對象的開銷成本往往這種方法放在類外面的模塊層作為一個函數存在也是沒問題的

而放在類中僅為這個類服務


staticmethod用於修飾類中的方法,使其可以在不創建類實例的情況下調用方法,這樣做的好處是執行效率比較高。
當然,也可以像一般的方法一樣用實例調用該方法。該方法一般被稱為靜態方法。靜態方法不可以引用類中的屬性或方法,其參數列表也不需要約定的默認參數self。
我個人覺得,靜態方法就是類對外部函數的封裝,有助於優化代碼結構和提高程序的可讀性。當然了,被封裝的方法應該盡可能的和封裝它的類的功能相匹配。
 
class A:

    def test(self,a):
        self.a=a
        print("我是test")
        # return self.a
    @staticmethod
    def m():
        print("我是staticmethod")

b=A()
print(b)  #<__main__.A object at 0x0000026D2197D808>
print(b.test)#<bound method A.test of <__main__.A object at 0x00000218C233FE08>>
print(A.test)  #<function A.test at 0x00000218C2418168>
print(A.m)  #<function A.m at 0x0000026D21987438>

 

 


免責聲明!

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



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