“类”;关键词参数";在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))
,同样的事情应该是可能的。