Python classMethod描述符
来源:互联网 发布:阿里云服务器 域名 编辑:程序博客网 时间:2024/05/16 12:08
http://bestchenwu.iteye.com/blog/1048395
通常情况下,如果我们要使用一个类的方法,那我们只能将一个类实体化成一个对象,进而调用对象使用方法。
比如:
- class C(object):
- def boo(self):
- print "boo";
- @classmethod
- def foo(cls):
- print "foo";
- c=C();
- c.boo();
- C.foo();
第一个函数为普通的类方法,需要传入一个self,即类实例来调用,而第二个方法为一个独立于类结构的方法。
注意:@classmethod 仅仅适用于单独的,与类本身的数据结构无关函数,其实用了它的函数,与使用普通函数无异,甚至不能在参数里加入 self,如果要在其中使用类的数据结构,仍然需要将类实例化一次才可以,所以要小心使用。
让我们更进一步看看foo()函数到底传入的是什么东西?稍微做下改造:
- class C(object):
- def boo(self):
- print "boo";
- @classmethod
- def foo(cls):
- print cls;
- print "foo";
- c=C();
- print c;
- print C;
- #c.boo();
- C.foo();
- 输出:
- <__main__.C object at 0x00C468D0>
- <class '__main__.C'>
- <class '__main__.C'>
- foo
由此可以看出foo函数里传入的的确是类C,而非实例c,证明了它跟实例无关
- Python classMethod描述符
- Python描述符,属性,方法,修饰符property,staticmethod,classmethod
- Python 技巧:@classmethod 修饰符
- Python 技巧:@classmethod 修饰符
- python classmethod
- Python @classmethod
- PYTHON @classmethod
- python中的@staticmethod和@classmethod修饰符
- Python: classmethod & staticmethod 区别
- Python: classmethod & staticmethod 区别
- 】Python @classmethod @staticmethod
- python staticmethod和classmethod
- python classmethod staticmethod
- Python @staticmethod和@classmethod
- python classmethod类方法
- Python装饰器:@classmethod
- Python @classmethod @staticmethod
- python的staticmethod、classmethod
- libev detail
- android repo 切换分支
- PE 文件详解-节表
- android:浏览器添加书签
- Objective-C中的一些特殊的数据类型
- Python classMethod描述符
- Unity4.0动画系统(Mecanim)
- pageContext
- 转一篇有关Java的内存泄露的文章(受益哦)
- C# 怎样获取string的某个字符的位置和怎样获得某单词
- Unknown symbol
- php解码escape
- 常用MPI 的进程绑定方法
- wtai