What does Python's builtin __build_class__ do?

Question:

In Python 3.1, there is a new builtin function I don’t know 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?

Asked By: u0b34a0f6ae

||

Answers:

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.

Answered By: CodeJoust
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.