Python';什么是建筑类?

Python';什么是建筑类?,python,python-3.x,metaclass,Python,Python 3.x,Metaclass,在Python3.1中,builtins模块中有一个我不知道的新内置函数: __build_class__(...) __build_class__(func, name, *bases, metaclass=None, **kwds) -> class Internal helper function used by the class statement. 这个函数做什么?如果它是内部的,为什么必须是内置的?类型(名称、基、dict)函数有什么区别?编译元类 政治

在Python3.1中,
builtins
模块中有一个我不知道的新内置函数:

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

    Internal helper function used by the class statement.
这个函数做什么?如果它是内部的,为什么必须是内置的?
类型(名称、基、dict)
函数有什么区别?

编译元类

政治公众人物建议该班 语句接受关键字参数,
*args
**kwds
语法以及位置基。这有点乱 编译和执行,但我们已经 当然,在代码中有这个 调用常规函数

所以我认为这是可以接受的 将其转换为对新的(隐藏的)调用 内置函数,名为
\uuuu构建类\uuuuu
。然后,该类定义:

  class C(A, B, metaclass=M, other=42, *more_bases, *more_kwds):
    ...
这将转化为:

  C = __build_class__(<func>, 'C', A, B, metaclass=M, other=42,
*more_bases, *more_kwds)
C=\uuuuuuuuuuuuuuuuuuu类(,'C',A,B,元类=M,其他=42,
*更多基础,*更多KWD)
其中,
是的函数对象 班集体


什么是“类主体的函数对象”?您可以在Guido van Rossum的链接文章中的代码示例中找到此信息
\uuuu build\u class\uuuu
将调用类似于
locals={}的东西;func(局部变量)
。也就是说,对于类
类X:y=1
,等效的主体函数
将是:
def func(locals):locals.y=1