From: Zachary Ware Date: Mon, 13 Apr 2015 16:30:47 +0000 (-0500) Subject: Issue #23932: Update the tutorial section on function annotations. X-Git-Tag: v3.5.0a4~91^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f3b990e48c698154fb2eaa990ee22a6962e041ac;p=thirdparty%2FPython%2Fcpython.git Issue #23932: Update the tutorial section on function annotations. Patch by Juti Noppornpitak. --- diff --git a/Doc/tutorial/controlflow.rst b/Doc/tutorial/controlflow.rst index ef50731a5b69..813c8285f850 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 ` 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 ` 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': , 'return': 'Nothing to see here', 'ham': 42} - Arguments: wonderful spam - + >>> f('spam') + Annotations: {'ham': , 'return': , 'eggs': } + Arguments: spam eggs + 'spam and eggs' .. _tut-codingstyle: