Add text about PEP 526 to What's new in 3.6. Ivan L.

This commit is contained in:
Guido van Rossum 2016-09-13 09:26:38 -07:00
parent 032c0fb655
commit a4d9b17b1f
1 changed files with 37 additions and 1 deletions

View File

@ -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