From e610c4f9984d50b45eb00e04c73c4208c0542a3b Mon Sep 17 00:00:00 2001 From: "Miss Islington (bot)" <31488909+miss-islington@users.noreply.github.com> Date: Sun, 5 Aug 2018 10:36:04 -0700 Subject: [PATCH] bpo-34336: Don't promote possibility to leave out typing.Optional (GH-8677) MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit (cherry picked from commit 336c945858055059a65134d4c501a85037d70d99) Co-authored-by: Ville Skyttä --- Doc/library/typing.rst | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/Doc/library/typing.rst b/Doc/library/typing.rst index 91d10e324cae..23a64156c592 100644 --- a/Doc/library/typing.rst +++ b/Doc/library/typing.rst @@ -990,10 +990,18 @@ The module defines the following classes, functions and decorators: Note that this is not the same concept as an optional argument, which is one that has a default. An optional argument with a - default needn't use the ``Optional`` qualifier on its type - annotation (although it is inferred if the default is ``None``). - A mandatory argument may still have an ``Optional`` type if an - explicit value of ``None`` is allowed. + default does not require the ``Optional`` qualifier on its type + annotation just because it is optional. For example:: + + def foo(arg: int = 0) -> None: + ... + + On the other hand, if an explicit value of ``None`` is allowed, the + use of ``Optional`` is appropriate, whether the argument is optional + or not. For example:: + + def foo(arg: Optional[int] = None) -> None: + ... .. data:: Tuple -- 2.47.3