Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python TypeError:\uuuu init\u子类\uuuuu()不接受关键字参数_Python_Metaclass - Fatal编程技术网

Python TypeError:\uuuu init\u子类\uuuuu()不接受关键字参数

Python TypeError:\uuuu init\u子类\uuuuu()不接受关键字参数,python,metaclass,Python,Metaclass,我正在尝试创建一个元类,但当我将它分配给另一个类时,我收到了错误TypeError:\uuuu init\u subclass\uuuu()不接受关键字参数,但我没有实现任何\uuuu init\u subclass\uuuu。为什么要调用此函数 类元(类型): 定义新定义(cls、名称、基础、dct): return super()。\uuuu new\uuuuu(cls、名称、基数、dct) 类MyClass(元=元): 通过 将meta更改为metaclass。传递给类签名的任何关键字参

我正在尝试创建一个元类,但当我将它分配给另一个类时,我收到了错误
TypeError:\uuuu init\u subclass\uuuu()不接受关键字参数
,但我没有实现任何
\uuuu init\u subclass\uuuu
。为什么要调用此函数


类元(类型):
定义新定义(cls、名称、基础、dct):
return super()。\uuuu new\uuuuu(cls、名称、基数、dct)
类MyClass(元=元):
通过

meta
更改为
metaclass
。传递给类签名的任何关键字参数都会传递给其父类的
\uuuu init\u subclass\uuu
方法。由于您输入了
meta
而不是
metaclass
,此
meta
kwarg将传递给其父对象(
对象
\uuuu init\u子类\uuuu
方法:

对象。初始化子类(meta=5) TypeError:\uuuu init\u子类\uuuuu()不接受关键字参数 如果您实际实现了
\uuuuu init\u子类但输入了一个打字错误,则会出现类似的错误:

类父级:
def _init_子类(cls,handler=None):
super()。\uuuu init\u子类
cls.handler=handler
类CorrectChild(父级,处理程序=5):
通过
类TypoChild(父类,句柄=5):
#TypeError:\uuuu init\u子类\uuuuuu()获得意外的关键字参数“handle”
通过

回答不错-只有一个更正:被调用的默认
\uuuu init\u subclass\uuuu
对象。\uuuuu init\u subclass\uuuu
,而不是
类型。\uuuuu init\u subclass\uuuu
:此方法在超类中调用,而不是在元类上。此外,在方法内部调用
super()。\uuuu init\u subclass\uuuu
也是一种很好的做法,这样您的基类是可组合的。