首页 > 编程语言 > 详细

python之类之多继承

时间:2017-07-19 21:05:27      阅读:254      评论:0      收藏:0      [点我收藏+]
class A(object):
    def test_func(self):
        print("from A")

class B(A):
    pass
    # def test_func(self):
    #     print("from B")


class C(A):
    pass
    # def test_func(self):
    #     print("from C")


#多继承,2.7和3.0还是有点不一样的,2.7的经典类是深度优先,3.0的经典类也是广度优先,3.0的新式类也是广度优先,就比如类D继承C类和B类,和C类和B类分别继承A类
#如果A B C D中都有一个相同的方法,那么调用的顺序是D,C,B,A,因为我们这里是class D(C,B),所以是调用的顺序是C,B,如果是class D (B,C),那么调用的顺序就是B,C


class D(C,B):
    pass
    # def test_func(self):
    #     print("from D")


d = D()
d.test_func()

# 1、如果类D中有test_func这个方法,那么执行该则执行的类D的方法
# from D

#2、如果类D中没有test_fucn这个方法,那么首先执行的类C中test_func的方法
# from C

#3、如果类C中没有test_func这个方法,那么就会执行类B中的test_func的方法
# from B

#4、如果类B、C中没有test_func这个方法,那么就会执行类A中的test_func的方法
# from A

  

python之类之多继承

原文:http://www.cnblogs.com/bainianminguo/p/7207805.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!