290112011 发表于 2015-4-26 11:25:45

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.
OK,差不多就是这个样子了。
页: [1]
查看完整版本: Python中静态方法的实现