“类”;关键词参数";在Python 3中

“类”;关键词参数";在Python 3中,python,class,python-3.x,Python,Class,Python 3.x,我从\uuuu build\u class\uuuu的文档字符串中注意到了这一点: __build_class__(func, name, *bases, metaclass=None, **kwds) -> class Internal helper function used by the class statement. 引起我兴趣的部分是**kwds部分。类定义可以接受关键字参数吗?我试过了,但我犯了一个非常奇怪的错误: >>> class Test(a=1)

我从
\uuuu build\u class\uuuu
的文档字符串中注意到了这一点:

__build_class__(func, name, *bases, metaclass=None, **kwds) -> class

Internal helper function used by the class statement.
引起我兴趣的部分是
**kwds
部分。类定义可以接受关键字参数吗?我试过了,但我犯了一个非常奇怪的错误:

>>> class Test(a=1):
...     pass
...
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: type() takes 1 or 3 arguments
类测试(a=1): ... 通过 ... 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 TypeError:type()接受1或3个参数 这是怎么回事?Python3中的类能否以某种方式接受关键字参数?也许需要一个特殊的元类

Python3中的类能否以某种方式接受关键字参数


对。除了
元类
之外,
语句中的任何关键字参数都会传递给元类。如果指定了
元类
参数,则将其用作元类;否则,元类为
类型
。有关更多详细信息,请参阅。

我明白了。假设这只是为了新的
元类=
语法而实现的,因为我认为通过使用元类工厂,比如
类MyClass(元类=get\u元类(**kwargs))
,同样的事情应该是可能的。