在Python 2.7.10爲什麼不是所有的基類構造函數都被調用?
class OneMixin(object):
def __init__(self):
# super(OneMixin, self).__init__()
print "one mixin"
class TwoMixin(object):
def __init__(self):
# super(TwoMixin, self).__init__()
print "two mixin"
class Account(OneMixin, TwoMixin):
def __init__(self):
super(Account, self).__init__()
print "account"
的Account.mro()是:[<class 'Account'>, <class 'OneMixin'>, <class 'TwoMixin'>, <type 'object'>]
雖然每個類在MRO列出的,不打印 「兩混入」。
如果我在OneMixin和TwoMixin中取消超級呼叫的註釋,那麼MRO是完全一樣的,但是「兩個mixin」是打印的。
爲什麼區別?我希望MRO的每一件事都能被召喚出來。