python3 classmethod

classmethod是用来指定一个类的方法为类方法,没有此参数指定的类的方法为实例方法,使用方法如下

class C:
    @classmethod
    def f(cls, arg1, arg2, ...): ...

类方法既可以直接类调用 C.f()

也可以进行实例调用 C().f()

具体实现:

>>> class C:
...     @classmethod
...     def f(self):
...             print "This is a class method"
...
>>> C.f()
This is a class method
>>> c = C()
>>> c.f()
This is a class method
>>> class D:
...     def f(self):
...             print " This is not a class method "
...
>>> D.f()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unbound method f() must be called with D instance as first argument (got nothing instead)
>>> d = D()
>>> d.f()
This is not a class method

 

posted @ 2017-03-17 13:44  没有为什么  阅读(397)  评论(0编辑  收藏  举报