新式类和经典类的区别
python2.7
新式类——广度优先
经典类——深度优先
python3.0
新式类——广度优先
经典类——广度优先
广度优先才是正常的思维,所以python 3.0中已经修复了经典类深度优先的特性,改为了广度优先
class A:
n = 'A'
def f2(self):
print("f2 from A")
class B(A):
n= 'B'
def f1(self):
print("from B")
def f2(self):
print("f2 from B")
class C(A):
n= 'C'
def f2(self):
print("from C")
class D(B,C):
pass d = D()
d.f1()
d.f2()
类的特殊成员
上文介绍了Python的类成员以及成员修饰符,从而了解到类中有字段、方法和属 性三大类成员,并且成员名前如果有两个下划线,则表示该成员是私有成员,私有成员只能由类内部调用。无论人或事物往往都有不按套路出牌的情 况,Python的类成员也是如此,存在着一些具有特殊含义的成员,详情如下:
1、__doc__
打印出的是类的描述信息
2、__module__
打印的是类的模块信息
3、__init__
初始化调用程序,自动执行
4、__del__
析构方法 ,程序运行完时,程序会自动销毁,内存自动清除
5、__new__
是__new__调用的__init__
6、__dict__
显示类的成员变量及值
7.__call__
详细参照Python 面向对象(初级篇):http://www.cnblogs.com/wupeiqi/p/4493506.html
详细参照python 面向对象(进阶篇): http://www.cnblogs.com/wupeiqi/p/4766801.html