【发布时间】:2021-06-17 18:11:28
【问题描述】:
我有一个接受关键字参数的类,这是在 Python 3.6 中与 __init_subclass__ 一起引入的:
class Parent:
def __init_subclass__(cls, key=None, **kwargs):
super().__init_subclass__(**kwargs)
assert key is not None
class Child(Parent, key=5):
pass
Child2 = type("Child2", (Parent,), {})
但它给出了一个AssertionError,因为没有通过key。如果我尝试提供额外的参数字典,则会收到以下错误:
>>> type("Child2", (Parent,), {}, {"key": 5})
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: type() takes 1 or 3 arguments
而且type 函数的文档也不允许指定它们。我怎样才能将这些 kwargs 传递给__init_subclass__?
【问题讨论】: