新式类和经典类的区别

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

04-13 14:51