新式类和经典类的区别
python2.7
新式类——广度优先
经典类——深度优先
python3.0
新式类——广度优先
经典类——广度优先
广度优先才是正常的思维,所以python 3.0中已经修复了经典类深度优先的特性,改为了广度优先
1 class A: 2 n = 'A' 3 def f2(self): 4 print("f2 from A") 5 class B(A): 6 n= 'B' 7 def f1(self): 8 print("from B") 9 def f2(self): 10 print("f2 from B") 11 class C(A): 12 n= 'C' 13 def f2(self): 14 print("from C") 15 class D(B,C): 16 pass 17 18 d = D() 19 d.f1() 20 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