◐ Shell
clean mode source ↗

[3.8] bpo-17422: Language reference should specify restrictions on class namespace (GH-18559) by miss-islington · Pull Request #18610 · python/cpython

Expand Up @@ -1946,10 +1946,12 @@ Once the appropriate metaclass has been identified, then the class namespace is prepared. If the metaclass has a ``__prepare__`` attribute, it is called as ``namespace = metaclass.__prepare__(name, bases, **kwds)`` (where the additional keyword arguments, if any, come from the class definition). The ``__prepare__`` method should be implemented as a :func:`classmethod`. ``__prepare__`` method should be implemented as a :func:`classmethod`. The namespace returned by ``__prepare__`` is passed in to ``__new__``, but when the final class object is created the namespace is copied into a new ``dict``.
If the metaclass has no ``__prepare__`` attribute, then the class namespace is initialised as an empty ordered mapping. is initialised as an empty :func:`dict`.
.. seealso::
Expand Down