Issue 27366: PEP 487 docs updates

- Porting note for type keyword arg handling
- __init_subclass__ note regarding  metaclass hint
This commit is contained in:
Nick Coghlan 2016-07-31 12:42:49 +10:00
parent 07e2a0aba9
commit 607e1c4c44
2 changed files with 16 additions and 0 deletions

View File

@ -1672,6 +1672,13 @@ class defining the method.
The default implementation ``object.__init_subclass__`` does
nothing, but raises an error if it is called with any arguments.
.. note::
The metaclass hint ``metaclass`` is consumed by the rest of the type
machinery, and is never passed to ``__init_subclass__`` implementations.
The actual metaclass (rather than the explicit hint) can be accessed as
``type(cls)``.
.. versionadded:: 3.6

View File

@ -759,6 +759,15 @@ Changes in the Python API
<keyword-only_parameter>`.
(Contributed by Serhiy Storchaka in :issue:`18726`.)
* As part of :pep:`487`, the handling of keyword arguments passed to
:class:`type` (other than the metaclass hint, ``metaclass``) is now
consistently delegated to :meth:`object.__init_subclass__`. This means that
:meth:`type.__new__` and :meth:`type.__init__` both now accept arbitrary
keyword arguments, but :meth:`object.__init_subclass__` (which is called from
:meth:`type.__new__`) will reject them by default. Custom metaclasses
accepting additional keyword arguments will need to adjust their calls to
:meth:`type.__new__` (whether direct or via :class:`super`) accordingly.
Changes in the C API
--------------------