我写了以下元类:
class FieldHandlerBase(type):
def __new__(cls, name, bases, dct, model):
...
return super(FieldHandlerBase, cls).__new__(cls, name, bases, dct)
现在,我尝试使用上面的元类动态创建一个类:
^{pr2}$但它给了我一个错误:
> model=name)
E TypeError: Error when calling the metaclass bases
E type.__init__() takes no keyword arguments
我不明白为什么,因为我用正确数量的参数调用元类基(type
,从FieldHandlerBase
)中调用。我该怎么解决这个问题?我需要向FieldHandlerBase
传递一个额外的参数,我不想将它包含到dct
参数中,因为我只需要在元类级别使用它。在
您需要编写
__init__
方法和__new__
方法。否则,python将为您的新类调用type.__init__
,它不接受任何附加参数。在例如
相关问题 更多 >
编程相关推荐