面向对象编程(12)py2和py3的继承的区别
-
在python2.2之前,只支持经典类【从左到右,深度优先,大小钻石,不留顶端】
-
后来,Python想让类默认继承object(其他语言的面向对象基本上也都是默认都继承object),此时发现原来的经典类不能直接集成集成这个功能,有Bug。
-
所以,Python决定不再原来的经典类上进行修改了,而是再创建一个新式类来支持这个功能。【从左到右,深度优先,大小钻石,留住顶端。】
-
经典类,不继承object类型
class Foo: pass -
新式类,直接或间接继承object
class Base(object): pass class Foo(Base): pass
-
-
这样,python2.2之后 中就出现了经典类和新式类共存。(正式支持是2.3)
-
最终,python3中丢弃经典类,只保留新式类。
浙公网安备 33010602011771号