python3多继承该怎么写?(是同时继承多个父类)

Python013

python3多继承该怎么写?(是同时继承多个父类),第1张

class jc(Car,Lunzi):

def __init__(self,paizi,xiaohao,year,lz,x):

Car.__init__(self,paizi,xiaohao,year)

Lunzi.__init__(self,lz)

self.x=x

a=jc('111','111',111,111,111)

print(a.paizi)

单继承:一个派生类的基类只有一个

多继承:一个派生类的基类有多个

一句话区分就是:单继承是一个生一个,多继承是多个生一个

多继承的基本语法:

子类定义构造方法时,需要将父类的构造方法调用一次。

案例演示:

在多继承中,所有基类的方法可以直接继承,但是属性需要手工初始化。如果派生类中没有 __init__ 方法,则默认获得第一个类的属性。如果派生类中有 __init__ 方法,则所有基类的属性都不会获得,需要手动逐一初始化。

我们定义一个ChineseStudent类,其继承关系如下:

调用基类的属性和方法

在不同的基类中存在相同的方法,派生类对象调用方法时会调用哪个父类的方法呢?

默认情况下,如果多个基类中有相同的方法,越在前面,优先级越高。

为了避免后期没必要的错误,建议基类之间存在重名的属性和方法应该尽量避免。

MRO(Method Resolution Order)方法解析顺序

如果是经典类(旧式类),MRO的方法--DFS(深度优先搜索)策略

如果是新式类,MRO的方法--BFS(广度优先搜索)策略