What does Python's builtin __build_class__ do?

前端 未结 1 1716
-上瘾入骨i
-上瘾入骨i 2020-12-16 10:35

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         


        
相关标签:
1条回答
  • 2020-12-16 10:42

    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.

    0 讨论(0)
提交回复
热议问题