在Python中,如何选择要调用的Parent方法?假设我要调用父ASDF2的__init__
方法。好像我必须在super()中指定 ASDF1 。如果要调用ASDF3的__init__
,则必须指定 ASDF2 吗?
>>> class ASDF(ASDF1, ASDF2, ASDF3):
def __init__(self):
super(ASDF1, self).__init__()
>>> ASDF()
ASDF2's __init__ happened
>>> class ASDF(ASDF1, ASDF2, ASDF3):
def __init__(self):
super(ASDF2, self).__init__()
>>> ASDF()
ASDF3's __init__ happened
在我看来是疯子。我究竟做错了什么?
最佳答案
那不是 super()
的目的。 super 基本上是按照特定顺序选择一个(或全部) parent 。如果您只想调用单亲方法,请执行此操作
class ASDF(ASDF1, ASDF2, ASDF3):
def __init__(self):
ASDF2.__init__(self)
关于python - Python的多重继承: Picking which super() to call,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14206015/