Kaydet (Commit) 7c91dbec authored tarafından Andrew Svetlov's avatar Andrew Svetlov

Merge issue #14893: Add function annotation example to function tutorial.

Patch by Zachary Ware.
...@@ -656,6 +656,40 @@ Here is an example of a multi-line docstring:: ...@@ -656,6 +656,40 @@ Here is an example of a multi-line docstring::
No, really, it doesn't do anything. No, really, it doesn't do anything.
.. _tut-annotations:
Function Annotations
--------------------
.. sectionauthor:: Zachary Ware <zachary.ware@gmail.com>
.. index::
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.
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
annotations are defined by a colon after the parameter name, followed by an
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::
>>> def f(ham: 42, eggs: int = 'spam') -> "Nothing to see here":
... print("Annotations:", f.__annotations__)
... print("Arguments:", ham, eggs)
...
>>> f('wonderful')
Annotations: {'eggs': <class 'int'>, 'return': 'Nothing to see here', 'ham': 42}
Arguments: wonderful spam
.. _tut-codingstyle: .. _tut-codingstyle:
Intermezzo: Coding Style Intermezzo: Coding Style
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment