summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRaymond Hettinger <python@rcn.com>2017-01-28 20:16:40 -0800
committerRaymond Hettinger <python@rcn.com>2017-01-28 20:16:40 -0800
commit4d8d8f83307efee9a4f79d354b4db99455d1af20 (patch)
tree8667ee03d92f5a8d75d6249028698dce66f1dd83
parent6ccbbb38caa79f9eb9b93b5767f3787fc80cbac1 (diff)
downloadcpython-4d8d8f83307efee9a4f79d354b4db99455d1af20.tar.gz
Issue 29310: Document typing.NamedTuple default argument syntax
-rw-r--r--Doc/library/typing.rst22
1 files changed, 18 insertions, 4 deletions
diff --git a/Doc/library/typing.rst b/Doc/library/typing.rst
index cd59d10ca2..efae67a6b7 100644
--- a/Doc/library/typing.rst
+++ b/Doc/library/typing.rst
@@ -735,10 +735,21 @@ The module defines the following classes, functions and decorators:
Employee = collections.namedtuple('Employee', ['name', 'id'])
- 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
- API.)
+ To give a field a default value, you can assign to it in the class body::
+
+ class Employee(NamedTuple):
+ name: str
+ id: int = 3
+
+ employee = Employee('Guido')
+ assert employee.id == 3
+
+ Fields with a default value must come after any fields without a default.
+
+ The resulting class has two extra attributes: ``_field_types``,
+ giving a dict mapping field names to types, and ``field_defaults``, a dict
+ mapping field names to default values. (The field names are in the
+ ``_fields`` attribute, which is part of the namedtuple API.)
Backward-compatible usage::
@@ -747,6 +758,9 @@ The module defines the following classes, functions and decorators:
.. versionchanged:: 3.6
Added support for :pep:`526` variable annotation syntax.
+ .. versionchanged:: 3.6.1
+ Added support for default values.
+
.. function:: NewType(typ)
A helper function to indicate a distinct types to a typechecker,