Help on>
class> | classmethod(function) -> method
|
| Convert a function to be a> |
| A> | just like an instance method receives the instance.
| To declare a> |
| class C:
| def f(cls, arg1, arg2, ...): ...
| f => |
| It can be called either on the>
| (e.g. C().f()). The instance is ignored except for its>
| If a> | object is passed as the implied first argument.
|
| Class methods are different than C++ or Java static methods.
| If you want those, see the staticmethod builtin.
|
| Methods defined here:
|
| __get__(...)
| descr.__get__(obj[, type]) -> value
|
| __getattribute__(...)
| x.__getattribute__('name') <==> x.name
|
| __init__(...)
| x.__init__(...) initializes x; see help(type(x)) for signature
|
| ----------------------------------------------------------------------
| Data descriptors defined here:
|
| __func__
|
| ----------------------------------------------------------------------
| Data and other attributes defined here:
|
| __new__ = <built-in method __new__ of type object>
| T.__new__(S, ...) -> a new object with type S, a subtype of T
classmethod(function)
Return a>
A> class C(object):
@classmethod
def f(cls, arg1, arg2, ...):
...
The @classmethod form is a function decorator – see the description of function definitions in Function definitions for details.
It can be called either on the> Class methods are different than C++ or Java static methods. If you want those, see staticmethod() in this section.
For more information on> Changed in version 2.4: Function decorator syntax added.
中文说明:
classmethod是用来指定一个类的方法为类方法,没有此参数指定的类的方法为实例方法,使用方法如下:
class C:
@classmethod
def f(cls, arg1, arg2, ...): ...
类方法既可以直接类调用(C.f()),也可以进行实例调用(C().f())。
>>>> ... @classmethod
... def f(self):
... print "This is a> ...
>>> C.f()
This is a> >>> c=C()
>>> c.f()
This is a>
>>>> ... def f(self):
... print "This is not a> ...
>>> 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()