Python 3中的“关键字参数”类

时间:2014-01-26 05:48:38

标签: python class python-3.x

我在__build_class__

的文档字符串中注意到了这一点
__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

这是什么交易? Python 3中的类可以以某种方式接受关键字参数吗?也许需要一个特殊的元类?

1 个答案:

答案 0 :(得分:3)

  

Python 3中的类可以以某种方式接受关键字参数吗?

是。除class之外的metaclass语句中的任何关键字参数都将传递给元类。如果指定了metaclass参数,则将其用作元类;否则,元类是type。有关详细信息,请参阅PEP 3115