diff options
author | topper-123 <terji78@gmail.com> | 2017-09-24 02:37:48 (GMT) |
---|---|---|
committer | Mariatta <Mariatta@users.noreply.github.com> | 2017-09-24 02:37:48 (GMT) |
commit | 039b25d8fd21f8d5d9e3cb536402d952cf068dc1 (patch) | |
tree | 897da380d2950e13834c43c4b3c5563a173b4be7 /Doc/library | |
parent | d6238a76c655e0feb13478505220dc9049f1682f (diff) | |
download | cpython-039b25d8fd21f8d5d9e3cb536402d952cf068dc1.zip cpython-039b25d8fd21f8d5d9e3cb536402d952cf068dc1.tar.gz cpython-039b25d8fd21f8d5d9e3cb536402d952cf068dc1.tar.bz2 |
bpo-31564: Update typing documentation (GH-3696)
Mention that ``NewType`` can derive from another ``NewType``.
Diffstat (limited to 'Doc/library')
-rw-r--r-- | Doc/library/typing.rst | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/Doc/library/typing.rst b/Doc/library/typing.rst index 1e48fec..bd04f73 100644 --- a/Doc/library/typing.rst +++ b/Doc/library/typing.rst @@ -111,8 +111,7 @@ More precisely, the expression ``some_value is Derived(some_value)`` is always true at runtime. This also means that it is not possible to create a subtype of ``Derived`` -since it is an identity function at runtime, not an actual type. Similarly, it -is not possible to create another :func:`NewType` based on a ``Derived`` type:: +since it is an identity function at runtime, not an actual type:: from typing import NewType @@ -121,9 +120,16 @@ is not possible to create another :func:`NewType` based on a ``Derived`` type:: # Fails at runtime and does not typecheck class AdminUserId(UserId): pass - # Also does not typecheck +However, it is possible to create a :func:`NewType` based on a 'derived' ``NewType``:: + + from typing import NewType + + UserId = NewType('UserId', int) + ProUserId = NewType('ProUserId', UserId) +and typechecking for ``ProUserId`` will work as expected. + See :pep:`484` for more details. .. note:: |