From 5ec24314cd4a8b8c649d57fddad20d2a53fef1d5 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Tue, 25 Oct 2016 09:53:11 -0700 Subject: [PATCH] Issue #28107: Update typing module documentation for NamedTuple (Ivan) --- Doc/library/typing.rst | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/Doc/library/typing.rst b/Doc/library/typing.rst index bbf5db6891b..a0666fed39a 100644 --- a/Doc/library/typing.rst +++ b/Doc/library/typing.rst @@ -677,23 +677,32 @@ The module defines the following classes, functions and decorators: ``Pattern[str]``, ``Pattern[bytes]``, ``Match[str]``, or ``Match[bytes]``. -.. function:: NamedTuple(typename, fields) +.. class:: NamedTuple Typed version of namedtuple. Usage:: - Employee = typing.NamedTuple('Employee', [('name', str), ('id', int)]) + class Employee(NamedTuple): + name: str + id: int This is equivalent to:: Employee = collections.namedtuple('Employee', ['name', 'id']) - The resulting class has one extra attribute: _field_types, + The resulting class has one extra attribute: ``_field_types``, giving a dict mapping field names to types. (The field names - are in the _fields attribute, which is part of the namedtuple + are in the ``_fields`` attribute, which is part of the namedtuple API.) + Backward-compatible usage:: + + Employee = NamedTuple('Employee', [('name', str), ('id', int)]) + + .. versionchanged:: 3.6 + Added support for :pep:`526` variable annotation syntax. + .. function:: NewType(typ) A helper function to indicate a distinct types to a typechecker,