gpt4 book ai didi

python - 类型错误 : __init_subclass__() takes no keyword arguments

转载 作者:行者123 更新时间:2023-12-04 00:54:41 27 4
gpt4 key购买 nike

我正在尝试创建一个元类,但是当我将它分配给另一个类时,我收到错误 TypeError: __init_subclass__() takes no keyword arguments但我没有实现任何 __init_subclass__ .为什么要调用这个函数?


class Meta(type):
def __new__(cls, name, bases, dct):
return super().__new__(cls, name, bases, dct)

class MyClass(meta=Meta):
pass

最佳答案

更改 metametaclass .任何传递给类签名的关键字参数都会传递给其父类的 __init_subclass__方法。自从您输入 meta而不是 metaclassmeta kwarg 被传递给它的父级 ( object ) __init_subclass__方法:

>>> 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, handle=5):
# TypeError: __init_subclass__() got an unexpected keyword argument 'handle'
pass

关于python - 类型错误 : __init_subclass__() takes no keyword arguments,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63448679/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com