Python class method
2016-03-20 17:50
513 查看
classmethod(function)
Return a class method for function.
A class method receives the class as implicit first argument, just like an instance method receives the instance. To declare a class method, use this idiom:
class C(object): @classmethod def f(cls, arg1, arg2, ...): ...
The
@classmethodform is a function decorator –
see the description of function definitions in Function definitions for details.
It can be called either on the class (such as
C.f()) or on an instance (such as
C().f()).
The instance is ignored except for its class. If a class method is called for a derived class, the derived class object is passed as the implied first argument.
Class methods are different than C++ or Java static methods. If you want those, see
staticmethod()in
this section.
For more information on class methods, consult the documentation on the standard type hierarchy in The
standard type hierarchy.
New in version 2.2.
Changed in version 2.4: Function decorator syntax added.
python中self,cls
普通的方法,第一个参数需要是self,它表示一个具体的实例本身。如果用了staticmethod,那么就可以无视这个self,而将这个方法当成一个普通的函数使用。
而对于classmethod,它的第一个参数不是self,是cls,它表示这个类本身。
>>> class A(object):
def foo1(self):
print "Hello",self
@staticmethod
def foo2():
print "hello"
@classmethod
def foo3(cls):
print "hello",cls
>>> a = A()
>>> a.foo1() #最常见的调用方式,但与下面的方式相同
Hello <__main__.A object at 0x9f6abec>
>>> A.foo1(a) #这里传入实例a,相当于普通方法的self
Hello <__main__.A object at 0x9f6abec>
>>> A.foo2() #这里,由于静态方法没有参数,故可以不传东西
hello
>>> A.foo3() #这里,由于是类方法,因此,它的第一个参数为类本身。
hello <class '__main__.A'>
>>> A #可以看到,直接输入A,与上面那种调用返回同样的信息。
<class '__main__.A'>
相关文章推荐
- 12道 Python面试题总结
- Python singleton instantiation
- python学习学习
- python 关键字 break
- Python Design Patterns
- Mac 下Python 连接MySQL及使用
- Python Singleton Summary
- python 关键字 之 assert(断言)
- python list定义并初始化长度 以及range()
- 使用Python+XML添加自定义模块
- Python decorators example
- python 关键字 之 as
- python,针对所有邮件的自由收发。(例子,QQ发给任何邮箱)
- 添加自定义的Python模块方法
- Python初体验之基础篇(1)- 算术和变量
- python assert的作用
- Python爬虫之MySql5.7.11数据库安装教程及其路径选择
- 【边喝caffee边Caffe 】(二)python版本的报错:Mean shape incompatible with input shape
- 以文件为单位的分句、分词python封装脚本
- 解决OS X下Pycharm无法识别Python第三方库的问题