我正在尝试创建一个元类,但是当我将其分配给另一个类时,我收到错误:
类型错误:__init_subclass__()
不接受关键字参数
但我没有实施任何__init_subclass__
。为什么要调用这个函数?
class Meta(type):
def __new__(cls, name, bases, dct):
return super().__new__(cls, name, bases, dct)
class MyClass(meta=Meta):
pass
Change meta
to metaclass
。传递给类签名的任何关键字参数都会传递给其父类的签名__init_subclass__
方法。自从你进入meta
代替metaclass
this meta
kwarg 被传递给它的父级 (object
) __init_subclass__
method:
>>> object.__init_subclass__(meta=5)
TypeError: __init_subclass__() takes no keyword arguments
如果您实际实现了一个类似的错误,则会出现__init_subclass__
但犯了一个错字:
class Parent:
def __init_subclass__(cls, handler=None):
super().__init_subclass__()
cls.handler = handler
class CorrectChild(Parent, handler=5):
pass
class TypoChild(Parent, typo=5):
# TypeError: __init_subclass__() got an unexpected keyword argument 'typo'
pass
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)