码迷,mamicode.com
首页 > 编程语言 > 详细

Python中MRO

时间:2018-09-22 19:42:34      阅读:307      评论:0      收藏:0      [点我收藏+]

标签:继承   深度优先   结果   class   python2   解析   python   obj   common   

MRO(方法解析顺序)

当有多重继承时,基于“从左到右,深度优先原则”:

class CommonBase():
    def Method(self):
        print(‘CommonBase‘)

class Base1(CommonBase):
    pass

class Base2(CommonBase):
    def Method(self):
        print(‘Base2‘)

class MyClass(Base1,Base2):
    pass


MyClass().Method()

# 执行结果:CommonBase

当然如上算法时在python2中旧式类中(不继承object)存在这样的算法,当然在python3中定义类的时候已经显示的继承了object(不管你是否写都默认地继承了object)。当然也提供了一个新的MRO算法,在python3中运行如上代码结果为:Base2

Python中MRO

标签:继承   深度优先   结果   class   python2   解析   python   obj   common   

原文地址:https://www.cnblogs.com/tianboblog/p/9690763.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!