一、多继承的概念单继承:子类有一个父类 多继承:子类有多个父类。并且具有所有父类的属性和方法。【例1】
语法:
例1:
结果:
二、MRO方法搜索顺序
有一种情况:不同的父类中有相同的方法,那继承之后调用的哪一个呢? 首先我们要尽量避免这种情况。
如果实在避免不了,可以通过__mro__属性来查看调用的是哪个方法。
例:
结果:
执行的是A类的fun()方法。 通过C.__mro__属性,可以看到首先是按照C类、A类、B类、object类的顺序来搜索方法的。(因为先继承的A,再继承的B,所以A在前。)
三、新式类和旧式(经典)类旧式类:不以object类为基类的类。 新式类:以object类为基类的类。
在Python2.0 中,如果指定了父类是object类,才是新式类。如果没有执行父类,那么就是旧式类。 在Python3.0中,如果没指定,默认就使用object作为基类,所以python3.0类都是新式类。
|