当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。