當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python staticmethod用法及代碼示例


用法:

@staticmethod

將方法轉換為靜態方法。

靜態方法不接收隱式的第一個參數。要聲明靜態方法,請使用以下習慣用法:

class C:
    @staticmethod
    def f(arg1, arg2, ...): ...

@staticmethod 表單是一個函數裝飾器 - 有關詳細信息,請參閱函數定義。

可以在類(例如 C.f() )或實例(例如 C().f() )上調用靜態方法。此外,它們可以作為常規函數調用(例如 f() )。

Python 中的靜態方法類似於 Java 或 C++ 中的靜態方法。此外,請參閱classmethod() 以了解可用於創建替代類構造函數的變體。

像所有裝飾器一樣,也可以將staticmethod 作為常規函數調用並對其結果進行處理。在某些情況下,當您需要從類體中引用函數並且您希望避免自動轉換為實例方法時,這是需要的。對於這些情況,請使用以下成語:

def regular_function():
    ...

class C:
    method = staticmethod(regular_function)

有關靜態方法的更多信息,請參閱標準類型層次結構。

在 3.10 版中更改:靜態方法現在繼承方法屬性(__module__,__name__,__qualname__,__doc____annotations__),有一個新的__wrapped__屬性,現在可以作為常規函數調用。

相關用法


注:本文由純淨天空篩選整理自python.org大神的英文原創作品 staticmethod。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。