Python中静态方法的实现

Python似乎很讨厌修饰符,没有常见的static语法。其静态方法的实现大致有以下两种方法:

第一种方式(staticmethod):

>>> class Foo:
        str = "I'm a static method."

        def bar():
            print Foo.str

        bar = staticmethod(bar)


>>> Foo.bar()
I'm a static method.


第二种方式(classmethod):

>>> class Foo:
        str = "I'm a static method."

        def bar(cls):
            print cls.str

        bar = classmethod(bar)


>>> Foo.bar()
I'm a static method.


---------------------------------------------------------------

上面的代码我们还可以写的更简便些:

>>> class Foo:
        str = "I'm a static method."

        @staticmethod
        def bar():
            print Foo.str


>>> Foo.bar()
I'm a static method.


或者

>>> class Foo:
        str = "I'm a static method."

        @classmethod
        def bar(cls):
            print cls.str


>>> Foo.bar()
I'm a static method.


OK,差不多就是这个样子了。

原文地址:https://www.cnblogs.com/lexus/p/1830145.html