本文主要是介绍多继承中MRO顺序详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1. 单继承子类调用父类的方法的方式:1. super().__init__()2. Parent.__init__(self)3. super(类名,self).__init__()单继承中, 使用父类名与super()调用父类的方法效果是一致的,没有区别2. 多继承中使用父类名调用父类的方法多继承中使用父类名调用父类的方法会出现父类的方法执行多次3. 多继承中使用super()调用父类的方法- mro顺序: Method Resolution Order :方法解决顺序,方法解析顺序用于描述在Python多继承中子类调用多个父类相同方法的顺序,内部通过C3算法去解析- 类名.__mro__ : 用元组的形式存放子类对象调用多个父类相同方法的顺序(mro算法执行的结果)- super()与类名.__mro__的关系:supe0小结: 1. 单继承中,super().__init__相对于类名.__init__,基本无差别2. 多继承中,super方法能保证每个父类的方法只会执行一次,而使用类名的方法会导致方法被执行多次,在多继承中,应用使用super来调用父类的方法3. super()内部是通过mro算法来确定调用哪个父类的方法
这篇关于多继承中MRO顺序详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!