##python中的__class__
__class__是类的一个内置属性,也是每个类实例的,它是一个类的引用。
self.__class__ is a reference to the type of the current instance.
简单例子:
可以从这里看到从CPython源码来分析__class__具体干了什么。
##__class__的用途
1.当一个类中的某个成员变量是所有该类的对象的公共变量时,可以用到__class__。
python代码:
2.在类中返回该类的一个新实例,python的内置模块就有很多这样的应用。例如python的字符串对象,其中对字符串对象的很多操作都会返回字符串对象的一个新实例。
python代码:
更多代码细节其可查看这里
##__class的误用super(self.\class__, self)
使用super(self.class, self)会引发递归引用错误,针对py2,py3的super语法已经改了。
测试代码:
|
|
更多讨论:(http://www.reddit.com/r/Python/comments/qa6g7/any_reason_not_to_use_self_class_with_super/)