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.strbar = classmethod(bar)
>>> Foo.bar()
I'm a static method.
---------------------------------------------------------------
上面的代码我们还可以写的更简便些:
>>> class Foo:
    str = "I'm a static method." def bar():
    print Foo.str bar = staticmethod(bar)
>>> Foo.bar()
I'm a static method.

>>> 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.

你可能感兴趣的:(python,python)