Re: [問題] 父函式呼叫未知個數的子函式

看板Python作者 (huge)時間15年前 (2009/10/08 11:45), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/4 (看更多)
※ 引述《yungyuc (酷狗喵千代)》之銘言: : ※ 引述《huge (huge)》之銘言: : : 標題確實下得不好還請見諒 : : 想請教各位前輩的是 : : 如果今天我有一個base (parent) class 最後需要呼叫 clear() : : 但是這個 clear() 是由各個 subclass 去實作的 : : 也就是說 base class 在執行 clear() 的當下 : : 並不曉得哪些 subclass 實作了沒 感謝回覆 : 為什麼要知道是誰實作的? 這邊的部份是我表達得不好,而是像yungyuc所說的, 在我的寫法裡面 parent 並不需要知道 child 實作了沒 所以看來還不需要邪惡的 __metaclass__ 另外有一個部份小弟沒看懂的是底下這句話 如果是因為多重繼承,記得最上層父類別裡的 clear() 要呼叫 super(...).clear() 保證每一個子類別的 clear() 都會被呼叫到 是指說在 parent 裡面藉由呼叫 super().clear() 去執行所有 child 的 clear() 嗎? : clear() 既然設計上要被覆寫,若子類別沒有實作 clear(),表示有問題 : 程式執行到該處就應該爛掉,然後程式員要測出來,再加以改正 : 如果 clear() 不一定要被覆寫,父類別就要提供預設方法。 : 如果是因為多重繼承,記得最上層父類別裡的 clear() 要呼叫 super(...).clear() : 保證每一個子類別的 clear() 都會被呼叫到 : (不過多種繼承很麻煩,這只是其中要注意的一點) : : 請問這在python中是否有個關鍵字可以讓小弟查詢呢? : : 感激不盡 : 如果你一定要知道是哪些子類別實作的話,用邪惡的 __metaclass__ 可以告訴你一切 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.146.30.126
文章代碼(AID): #1ApM15Hb (Python)
文章代碼(AID): #1ApM15Hb (Python)