cf2000 发表于 2017-4-23 09:07:08

python静态方法



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.



参考地址:
http://user.qzone.qq.com/286331225/blog/1329879418



















页: [1]
查看完整版本: python静态方法