我想在类的创建过程中自动运行在任何派生类的基类中定义的类方法。例如: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__属性是指向一个类对象还是一个函数对象应该不重要。但它确实很重要,我认为你是对的。我想知道为什么?如果可以,请提供一些简单的代码示例。 –