在Python中如何定义静态方法


在Python中如何定义静态方法

使用staticmethod装饰器

class MyClass(object):
    @staticmethod
    def the_static_method(x):
        print x

MyClass.the_static_method(2) # outputs 2

请注意,某些代码可能使用定义静态方法的旧方法,使用staticmethod函数而不是装饰器。只有在你必须支持古老版本的Python(2.2和2.3)时才应该使用它

class MyClass(object):
    def the_static_method(x):
        print x
    the_static_method = staticmethod(the_static_method)

MyClass.the_static_method(2) # outputs 2

这与第一个示例(使用@staticmethod)完全相同,只是没有使用漂亮的装饰器语法

最后,staticmethod()谨慎使用!在Python中很少需要静态方法,我已经看到它们多次使用单独的“顶级”函数会更清晰。