继承在Python:什么问题,怎么解决

 我来答
匿名用户
2017-11-19
展开全部

多重继承的陷阱:钻石继承(菱形继承)问题


支持多继承的面向对象编程都可能会导致钻石继承(菱形继承)问题,看以下代码:

  • class A():

  • def __init__(self):

  • print("进入A…")

  • print("离开A…")

  • class B(A):

  • def __init__(self):

  • print("进入B…")

  • A.__init__(self)

  • print("离开B…")

  • class C(A):

  • def __init__(self):

  • print("进入C…")

  • A.__init__(self)

  • print("离开C…")

  • class D(B, C):

  • def __init__(self):

  • print("进入D…")

  • B.__init__(self)

  • C.__init__(self)

  • print("离开D…")

  • >>> d = D()

  • 进入D…

  • 进入B…

  • 进入A…

  • 离开A…

  • 离开B…

  • 进入C…

  • 进入A…

  • 离开A…

  • 离开C…

  • 离开D…

  • 复制代码



  • 为什么叫钻石继承(菱形继承),看下图就明白名字的由来了:


推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式