python之类之多继承详解编程语言

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 

  

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/20893.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论