我很好奇是否有一種方法在Python中強制(從父類)父級方法從子級調用,當它被覆蓋。強制子類調用父級方法時重寫它
例子:
class Parent(object):
def __init__(self):
self.someValue=1
def start(self):
''' Force method to be called'''
self.someValue+=1
正確執行的是什麼,我想我的孩子子類來實現將是:
class ChildCorrect(Parent):
def start(self):
Parent.start(self)
self.someValue+=1
但是,有沒有辦法強制將開發兒童類開發商特別呼叫(不只是覆蓋)Parent類中定義的'start'方法,以防忘記調用它:
class ChildIncorrect(Parent):
def start(self):
'''Parent method not called, but correctly overridden'''
self.someValue+=1
另外,如果這不被認爲是最佳實踐,那麼會有什麼替代?
重寫方法在調用超類時是否必須有自由*?即如果重寫方法在執行的開始或結束時被強制調用超級方法,它會好嗎? (可能在一般情況下限制它是不行的。)如果是這樣,可以使用元類來包裝任何重寫方法並隱式調用super;那麼重寫方法將不被允許自行調用超級方法(您可能無法執行)。 –
暗示用戶應該調用超類方法,類似於缺少抽象方法實現的方式,用linter拾取? – pnovotnak