在 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的多重继承: Picking which super() to call,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14206015/