[3.9] bpo-42198: Document __new__ for types.GenericAlias (GH-23039) (GH-23061)

(cherry picked from commit bcbf758476)
This commit is contained in:
kj 2020-10-31 23:05:36 +08:00 committed by GitHub
parent ddcd57e3ea
commit dbaa07db67
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 2 deletions

View file

@ -4760,7 +4760,8 @@ The ``GenericAlias`` object acts as a proxy for :term:`generic types
of a generic which provides the types for container elements.
The user-exposed type for the ``GenericAlias`` object can be accessed from
:data:`types.GenericAlias` and used for :func:`isinstance` checks.
:class:`types.GenericAlias` and used for :func:`isinstance` checks. It can
also be used to create ``GenericAlias`` objects directly.
.. describe:: T[X, Y, ...]

View file

@ -242,11 +242,22 @@ Standard names are defined for the following types:
Defaults to ``None``. Previously the attribute was optional.
.. data:: GenericAlias
.. class:: GenericAlias(t_origin, t_args)
The type of :ref:`parameterized generics <types-genericalias>` such as
``list[int]``.
``t_origin`` should be a non-parameterized generic class, such as ``list``,
``tuple`` or ``dict``. ``t_args`` should be a :class:`tuple` (possibly of
length 1) of types which parameterize ``t_origin``::
>>> from types import GenericAlias
>>> list[int] == GenericAlias(list, (int,))
True
>>> dict[str, int] == GenericAlias(dict, (str, int))
True
.. versionadded:: 3.9