What does Python's builtin __build_class__ do?
In Python 3.1, there is a new builtin function I don't kno开发者_开发问答w in the builtins
module:
__build_class__(...)
__build_class__(func, name, *bases, metaclass=None, **kwds) -> class
Internal helper function used by the class statement.
What does this function do? Why must it be in builtins if it's internal? What is the difference to the type(name, bases, dict)
function?
Compiling the PEP 3115 metaclass
Guido van Rossum said:
The PEP proposes that the class statement accepts keyword arguments,
*args
, and**kwds
syntax as well as positional bases. This is a bit messy to compile and execute, but we already have this, of course, in the code for calling regular functions.So I think it would be acceptable to this into a call to a new (hidden) built-in function, named
__build_class__
. Then that this class definition:class C(A, B, metaclass=M, other=42, *more_bases, *more_kwds): ...
would translate into this:
C = __build_class__(<func>, 'C', A, B, metaclass=M, other=42, *more_bases, *more_kwds)
where
<func>
is a function object for the class body.
精彩评论