python支持多重继承,也就是说一个子类可以有多个直接父类,特点就是具备了多个父类。但是由于使用这种方法会使类的形式出现混乱,所以尽量避免使用。
class A:
def aa(self):
print("aa")
class B:
def bb(self):
print("bb")
class C(B,A):
def cc(self):
print("cc")
c = C()
c.cc()
c.bb()
c.aa()
结果是:cc
bb
aa
MRO()方法
如果父类中有相同名字的方法,在子类没有指定父类名时,解释器将“从左向右”按顺序搜索。 MRO:方法解析顺序。 我们可以通过 mro()方法获得“类的层次结构”,方法解析顺序也是按照这个“类的层次结构”寻找的。
如果想获取父类要用super(),super代表的是父类的定义,而不是父类的对象!这点一定要记住,不要搞混
接下来看一个例子:
class A:
def say(self):
print("A: ",self)
print("say AAA")
class B(A):
def say(self):
#A.say(self) 调用父类的 say 方法
super().say() #通过 super()调用父类的方法
print("say BBB")
b = B()
b.say()
运行结果是:
A: <__main__.b object at>
say AAA
say BBB
今天就这么多,多重继承没什么好说的,大家看看了解一下就行,用到的地方少。