summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShantanu <12621235+hauntsaninja@users.noreply.github.com>2022-10-12 02:37:58 (GMT)
committerGitHub <noreply@github.com>2022-10-12 02:37:58 (GMT)
commited6344eed043eaaa41d11c1176c25aa79de64ef4 (patch)
treecb399b06b12ae3f0e35a1b75794a17d6261f446d
parentf5d71073e61b69b3ab331736fd69dc6324405775 (diff)
downloadcpython-ed6344eed043eaaa41d11c1176c25aa79de64ef4.zip
cpython-ed6344eed043eaaa41d11c1176c25aa79de64ef4.tar.gz
cpython-ed6344eed043eaaa41d11c1176c25aa79de64ef4.tar.bz2
gh-96130: Rephrase use of "typecheck" verb for clarity (#98144)
I'm sympathetic to the issue report, especially in case this helps clarify to new users that Python itself does not do type checking at runtime
-rw-r--r--Doc/library/typing.rst20
1 files changed, 10 insertions, 10 deletions
diff --git a/Doc/library/typing.rst b/Doc/library/typing.rst
index f63d61e..fee55be 100644
--- a/Doc/library/typing.rst
+++ b/Doc/library/typing.rst
@@ -105,7 +105,7 @@ A type alias is defined by assigning the type to the alias. In this example,
def scale(scalar: float, vector: Vector) -> Vector:
return [scalar * num for num in vector]
- # typechecks; a list of floats qualifies as a Vector.
+ # passes type checking; a list of floats qualifies as a Vector.
new_vector = scale(2.0, [1.0, -4.2, 5.4])
Type aliases are useful for simplifying complex type signatures. For example::
@@ -147,10 +147,10 @@ of the original type. This is useful in helping catch logical errors::
def get_user_name(user_id: UserId) -> str:
...
- # typechecks
+ # passes type checking
user_a = get_user_name(UserId(42351))
- # does not typecheck; an int is not a UserId
+ # fails type checking; an int is not a UserId
user_b = get_user_name(-1)
You may still perform all ``int`` operations on a variable of type ``UserId``,
@@ -176,7 +176,7 @@ It is invalid to create a subtype of ``Derived``::
UserId = NewType('UserId', int)
- # Fails at runtime and does not typecheck
+ # Fails at runtime and does not pass type checking
class AdminUserId(UserId): pass
However, it is possible to create a :class:`NewType` based on a 'derived' ``NewType``::
@@ -463,12 +463,12 @@ value of type :data:`Any` and assign it to any variable::
s = a # OK
def foo(item: Any) -> int:
- # Typechecks; 'item' could be any type,
+ # Passes type checking; 'item' could be any type,
# and that type might have a 'bar' method
item.bar()
...
-Notice that no typechecking is performed when assigning a value of type
+Notice that no type checking is performed when assigning a value of type
:data:`Any` to a more precise type. For example, the static type checker did
not report an error when assigning ``a`` to ``s`` even though ``s`` was
declared to be of type :class:`str` and receives an :class:`int` value at
@@ -500,20 +500,20 @@ reject almost all operations on it, and assigning it to a variable (or using
it as a return value) of a more specialized type is a type error. For example::
def hash_a(item: object) -> int:
- # Fails; an object does not have a 'magic' method.
+ # Fails type checking; an object does not have a 'magic' method.
item.magic()
...
def hash_b(item: Any) -> int:
- # Typechecks
+ # Passes type checking
item.magic()
...
- # Typechecks, since ints and strs are subclasses of object
+ # Passes type checking, since ints and strs are subclasses of object
hash_a(42)
hash_a("foo")
- # Typechecks, since Any is compatible with all types
+ # Passes type checking, since Any is compatible with all types
hash_b(42)
hash_b("foo")