summaryrefslogtreecommitdiffstats
path: root/Doc
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>2016-09-13 16:26:38 (GMT)
committerGuido van Rossum <guido@python.org>2016-09-13 16:26:38 (GMT)
commita4d9b17b1fd0f3432c72d686c7668169e39e7119 (patch)
treee810b501cfd49d84e7cc56897cd8deb75859547f /Doc
parent032c0fb655b48675d67ff0e283bf87f8ee660b34 (diff)
downloadcpython-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.rst38
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