diff options
author | Zachary Ware <zachary.ware@gmail.com> | 2015-04-13 11:30:47 -0500 |
---|---|---|
committer | Zachary Ware <zachary.ware@gmail.com> | 2015-04-13 11:30:47 -0500 |
commit | aa638d20b89f9e3535524007c25bd9dd9bb84e31 (patch) | |
tree | 21e37b1c61b6c8f7a93abf70252afcd58b47a976 | |
parent | bb9afdb75756915830f1e69394ed3ebdf5a805e4 (diff) | |
download | cpython-aa638d20b89f9e3535524007c25bd9dd9bb84e31.tar.gz |
Issue #23932: Update the tutorial section on function annotations.
Patch by Juti Noppornpitak.
-rw-r--r-- | Doc/tutorial/controlflow.rst | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/Doc/tutorial/controlflow.rst b/Doc/tutorial/controlflow.rst index ef50731a5b..813c8285f8 100644 --- a/Doc/tutorial/controlflow.rst +++ b/Doc/tutorial/controlflow.rst @@ -673,11 +673,9 @@ Function Annotations pair: function; annotations single: -> (return annotation assignment) -:ref:`Function annotations <function>` are completely optional, -arbitrary metadata information about user-defined functions. Neither Python -itself nor the standard library use function annotations in any way; this -section just shows the syntax. Third-party projects are free to use function -annotations for documentation, type checking, and other uses. +:ref:`Function annotations <function>` are completely optional metadata +information about the types used by user-defined functions (see :pep:`484` +for more information). Annotations are stored in the :attr:`__annotations__` attribute of the function as a dictionary and have no effect on any other part of the function. Parameter @@ -686,16 +684,17 @@ expression evaluating to the value of the annotation. Return annotations are defined by a literal ``->``, followed by an expression, between the parameter list and the colon denoting the end of the :keyword:`def` statement. The following example has a positional argument, a keyword argument, and the return -value annotated with nonsense:: +value annotated:: - >>> def f(ham: 42, eggs: int = 'spam') -> "Nothing to see here": + >>> def f(ham: str, eggs: str = 'eggs') -> str: ... print("Annotations:", f.__annotations__) ... print("Arguments:", ham, eggs) + ... return ham + ' and ' + eggs ... - >>> f('wonderful') - Annotations: {'eggs': <class 'int'>, 'return': 'Nothing to see here', 'ham': 42} - Arguments: wonderful spam - + >>> f('spam') + Annotations: {'ham': <class 'str'>, 'return': <class 'str'>, 'eggs': <class 'str'>} + Arguments: spam eggs + 'spam and eggs' .. _tut-codingstyle: |