Python笔记

2019-08-02

多继承与super()

继承了多个父类的类,在父类中调用super()时,不会直接调用父类的父类。这是因为super()实际上是沿MRO来调用方法的。
MRO是一个类在调用方法时,用来查找定义了这个方法的类列表。在目前的python中,这个列表是采用广度优先的方式生成的。
所以父类在调用super()时,先查找的是其子类的下一个父类,如果下一个父类中含有同名方法,则会直接调用。