summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZachary Ware <zachary.ware@gmail.com>2015-04-13 11:30:47 -0500
committerZachary Ware <zachary.ware@gmail.com>2015-04-13 11:30:47 -0500
commitaa638d20b89f9e3535524007c25bd9dd9bb84e31 (patch)
tree21e37b1c61b6c8f7a93abf70252afcd58b47a976
parentbb9afdb75756915830f1e69394ed3ebdf5a805e4 (diff)
downloadcpython-aa638d20b89f9e3535524007c25bd9dd9bb84e31.tar.gz
Issue #23932: Update the tutorial section on function annotations.
Patch by Juti Noppornpitak.
-rw-r--r--Doc/tutorial/controlflow.rst21
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: