Python 的多重继承

作者: 七月尾巴_葵花 | 来源:发表于2017-06-22 00:01 被阅读27次

在我们使用多重继承时,根据新的C3 class resolution算法,执行如下操作:假设 C 继承两个父类 A,B,“A 应该先于 B”。


class A(object):
    def foo(self):
        print("class A")
 
class B(object):
    def foo(self):
        print("class B")
 
class C(A, B):
    pass
 
C().foo()

输出:

Screen Shot 2015-11-27 at 10.00.00 AM
上面代码在查找foo方法时,先从C开始找,然后A,在A里如果找到foo方法,调用A的,依次类推。查找顺序 C->A->B。
在看一个例子:
class A(object):
   def foo(self):
      print("class A")
 
class B(A):
   pass
 
class C(A):
   def foo(self):
      print("class C")
 
class D(B,C):
   pass
 
D().foo()

先在B里找,B又继承自A(C也是继承自A,但是它有自己的foo方法),查找顺序为 D->B->C->A。(从菱形下向上查找)

相关文章

  • 面向对象

    类的定义方法 子类的定义 多重继承 python允许多重继承。

  • Python多重继承(拓扑排序)(9)

    Python跟Java不同,Java只能单继承(不过有多实现),而Python能够多重继承。其多重继承遵循拓扑排序...

  • Python:12多重继承

    python 多重继承之拓扑排序

  • 面向对象高级编程(二)-多重继承&定制类

    多重继承 继承是面向对象编程的一个重要方式,通过继承,子类可以扩展父类的功能。 在python中,可以通过多重继承...

  • 当心掉进Python多重继承里的坑

    关于类的知识点里面,有一块是关于多重继承,跟其他主流语言一样,Python也支持多重继承,多重继承虽然有一些好处,...

  • 当心掉进Python多重继承里的坑

    关于类的知识点里面,有一块是关于多重继承,跟其他主流语言一样,Python也支持多重继承,多重继承虽然有一些好处,...

  • 35-python中多重继承

    除了从一个父类继承外,Python允许从多个父类继承,称为多重继承。 多重继承的继承链就不是一棵树了,它像这样: ...

  • python学习日记-2016.7.21

    1.多重继承 python的多重继承可以使一个子类得到多个父类的所有功能,定义多重继承很简单,只需要在定义类时在类...

  • Python基础总结(九)(继承和多态)

    这里主要列出Python中有关继承和多态的略微特殊的知识点,常见更多继承多态问题 Python允许多重继承,使用下...

  • python的多重继承

    python的多重继承最好建议使用super的方法调用父类,如果使用父类的类名去调用,就会造成重复调用父类的情况比...

网友评论

    本文标题:Python 的多重继承

    本文链接:https://www.haomeiwen.com/subject/stdxcxtx.html