我想在類的創建過程中自動運行在任何派生類的基類中定義的類方法。例如:Python派生類在派生類上自動運行類方法
class Base(object):
@classmethod
def runme():
print "I am being run"
def __metclass__(cls,parents,attributes):
clsObj = type(cls,parents,attributes)
clsObj.runme()
return clsObj
class Derived(Base):
pass:
這裏發生的是,當創建Base時,'runme()'將會觸發。但是,創建派生時沒有任何反應。
問題是:如何在創建派生的時使'runme()'也被觸發。
這是我至今想:如果我明確設置派生的元類到基地的,它會工作。但我不希望發生這種情況。我基本上想要派生的使用基地的元類沒有我必須明確地設置它。
你爲什麼定義爲'喜歡這個類裏面__metaclass__'?它應該被用來將元類設置爲一個外部定義的類。 – BrenBarn
@BrenBarn:但爲什麼它不能像我用過的那樣使用它。據我所見,__metaclass__屬性是指向一個類對象還是一個函數對象應該不重要。但它確實很重要,我認爲你是對的。我想知道爲什麼?如果可以,請提供一些簡單的代碼示例。 –