mirror of https://github.com/python/cpython
gh-126543: Docs: change "bound type var" to "bounded" when used in the context of the 'bound' kw argument to TypeVar (#126584)
This commit is contained in:
parent
f435de6765
commit
434b29767f
|
@ -1726,11 +1726,11 @@ without the dedicated syntax, as documented below.
|
|||
class Sequence[T]: # T is a TypeVar
|
||||
...
|
||||
|
||||
This syntax can also be used to create bound and constrained type
|
||||
This syntax can also be used to create bounded and constrained type
|
||||
variables::
|
||||
|
||||
class StrSequence[S: str]: # S is a TypeVar bound to str
|
||||
...
|
||||
class StrSequence[S: str]: # S is a TypeVar with a `str` upper bound;
|
||||
... # we can say that S is "bounded by `str`"
|
||||
|
||||
|
||||
class StrOrBytesSequence[A: (str, bytes)]: # A is a TypeVar constrained to str or bytes
|
||||
|
@ -1763,8 +1763,8 @@ without the dedicated syntax, as documented below.
|
|||
"""Add two strings or bytes objects together."""
|
||||
return x + y
|
||||
|
||||
Note that type variables can be *bound*, *constrained*, or neither, but
|
||||
cannot be both bound *and* constrained.
|
||||
Note that type variables can be *bounded*, *constrained*, or neither, but
|
||||
cannot be both bounded *and* constrained.
|
||||
|
||||
The variance of type variables is inferred by type checkers when they are created
|
||||
through the :ref:`type parameter syntax <type-params>` or when
|
||||
|
@ -1774,8 +1774,8 @@ without the dedicated syntax, as documented below.
|
|||
By default, manually created type variables are invariant.
|
||||
See :pep:`484` and :pep:`695` for more details.
|
||||
|
||||
Bound type variables and constrained type variables have different
|
||||
semantics in several important ways. Using a *bound* type variable means
|
||||
Bounded type variables and constrained type variables have different
|
||||
semantics in several important ways. Using a *bounded* type variable means
|
||||
that the ``TypeVar`` will be solved using the most specific type possible::
|
||||
|
||||
x = print_capitalized('a string')
|
||||
|
@ -1789,8 +1789,8 @@ without the dedicated syntax, as documented below.
|
|||
|
||||
z = print_capitalized(45) # error: int is not a subtype of str
|
||||
|
||||
Type variables can be bound to concrete types, abstract types (ABCs or
|
||||
protocols), and even unions of types::
|
||||
The upper bound of a type variable can be a concrete type, abstract type
|
||||
(ABC or Protocol), or even a union of types::
|
||||
|
||||
# Can be anything with an __abs__ method
|
||||
def print_abs[T: SupportsAbs](arg: T) -> None:
|
||||
|
@ -1834,7 +1834,7 @@ without the dedicated syntax, as documented below.
|
|||
|
||||
.. attribute:: __bound__
|
||||
|
||||
The bound of the type variable, if any.
|
||||
The upper bound of the type variable, if any.
|
||||
|
||||
.. versionchanged:: 3.12
|
||||
|
||||
|
@ -2100,7 +2100,7 @@ without the dedicated syntax, as documented below.
|
|||
return x + y
|
||||
|
||||
Without ``ParamSpec``, the simplest way to annotate this previously was to
|
||||
use a :class:`TypeVar` with bound ``Callable[..., Any]``. However this
|
||||
use a :class:`TypeVar` with upper bound ``Callable[..., Any]``. However this
|
||||
causes two problems:
|
||||
|
||||
1. The type checker can't type check the ``inner`` function because
|
||||
|
|
Loading…
Reference in New Issue