继承在Python:什么问题,怎么解决
1个回答
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…
- 为什么叫钻石继承(菱形继承),看下图就明白名字的由来了:
复制代码
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询