diff options
author | Guido van Rossum <guido@python.org> | 2016-09-13 16:26:38 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 2016-09-13 16:26:38 (GMT) |
commit | a4d9b17b1fd0f3432c72d686c7668169e39e7119 (patch) | |
tree | e810b501cfd49d84e7cc56897cd8deb75859547f /Doc | |
parent | 032c0fb655b48675d67ff0e283bf87f8ee660b34 (diff) | |
download | cpython-a4d9b17b1fd0f3432c72d686c7668169e39e7119.zip cpython-a4d9b17b1fd0f3432c72d686c7668169e39e7119.tar.gz cpython-a4d9b17b1fd0f3432c72d686c7668169e39e7119.tar.bz2 |
Add text about PEP 526 to What's new in 3.6. Ivan L.
Diffstat (limited to 'Doc')
-rw-r--r-- | Doc/whatsnew/3.6.rst | 38 |
1 files changed, 37 insertions, 1 deletions
diff --git a/Doc/whatsnew/3.6.rst b/Doc/whatsnew/3.6.rst index 999d29f..3cfb956 100644 --- a/Doc/whatsnew/3.6.rst +++ b/Doc/whatsnew/3.6.rst @@ -72,7 +72,7 @@ New syntax features: * PEP 515: Underscores in Numeric Literals -* PEP 526: Syntax for Variable Annotations +* PEP 526: :ref:`Syntax for Variable Annotations <variable-annotations>` * PEP 525: Asynchronous Generators @@ -277,6 +277,42 @@ evaluated at run time, and then formatted using the :func:`format` protocol:: See :pep:`498` and the main documentation at :ref:`f-strings`. + +.. _variable-annotations: + +PEP 526: Syntax for variable annotations +======================================== + +:pep:`484` introduced standard for type annotations of function parameters, +a.k.a. type hints. This PEP adds syntax to Python for annotating the +types of variables including class variables and instance variables:: + + primes: List[int] = [] + + captain: str # Note: no initial value! + + class Starship: + stats: Dict[str, int] = {} + +Just as for function annotations, the Python interpreter does not attach any +particular meaning to variable annotations and only stores them in a special +attribute ``__annotations__`` of a class or module. +In contrast to variable declarations in statically typed languages, +the goal of annotation syntax is to provide an easy way to specify structured +type metadata for third party tools and libraries via the abstract syntax tree +and the ``__annotations__`` attribute. + +.. seealso:: + + :pep:`526` -- Syntax for variable annotations. + PEP written by Ryan Gonzalez, Philip House, Ivan Levkivskyi, Lisa Roach, + and Guido van Rossum. Implemented by Ivan Levkivskyi. + + Tools that use or will use the new syntax: + `mypy <http://github.com/python/mypy>`_, + `pytype <http://github.com/google/pytype>`_, PyCharm, etc. + + .. _pep-529: PEP 529: Change Windows filesystem encoding to UTF-8 |