【发布时间】:2018-10-16 14:48:44
【问题描述】:
我有这个代码,显示了一个经典的菱形图案:
class A:
def __init__( self, x ):
print( "A:" + x )
class B( A ):
def __init__( self, x ):
print( "B:" + x )
super().__init__( "b" )
class C( A ):
def __init__( self, x ):
print( "C:" + x )
super().__init__( "c" )
class D( B, C ):
def __init__( self ):
super().__init__( "d" )
d = D()
输出是:
B:d
C:b
A:c
-
B:d是有道理的,因为D派生自B。 -
A:c我几乎得到了,虽然我同样可以看到A:b。 - 但是,
C:b位没有意义:C不是从B派生的。
谁能解释一下?
this之类的问题很遗憾没有提到参数。
【问题讨论】:
-
“不幸的是,像这样的问题没有提到参数。”请注意,
self也是一个参数!它的处理方式与其他任何操作一样。
标签: python python-3.x multiple-inheritance