u0b*_*6ae 20 python metaclass python-3.x
在Python 3.1中,我在builtins
模块中有一个新的内置函数:
__build_class__(...)
__build_class__(func, name, *bases, metaclass=None, **kwds) -> class
Internal helper function used by the class statement.
Run Code Online (Sandbox Code Playgroud)
这个功能有什么作用?如果它是内部的,为什么必须在内置?这个type(name, bases, dict)
功能有什么区别?
Cod*_*ust 23
编译PEP 3115元类
该PEP建议类语句接受关键字参数,
*args
和**kwds
语法以及位置基地.这对于编译和执行来说有点混乱,但是我们已经在调用常规函数的代码中使用了它.所以我认为这对于一个名为的新(隐藏)内置函数的调用是可以接受的
__build_class__
.然后说这个类定义:Run Code Online (Sandbox Code Playgroud)class C(A, B, metaclass=M, other=42, *more_bases, *more_kwds): ...
会转化为这个:
Run Code Online (Sandbox Code Playgroud)C = __build_class__(<func>, 'C', A, B, metaclass=M, other=42, *more_bases, *more_kwds)
where
<func>
是类体的函数对象.