]> granicus.if.org Git - python/commitdiff
Issue 29310: Document typing.NamedTuple default argument syntax
authorRaymond Hettinger <python@rcn.com>
Sun, 29 Jan 2017 04:16:40 +0000 (20:16 -0800)
committerRaymond Hettinger <python@rcn.com>
Sun, 29 Jan 2017 04:16:40 +0000 (20:16 -0800)
Doc/library/typing.rst

index cd59d10ca295a9c06969f7aebd24e227b7ba1af0..efae67a6b7b7a91fc6629a0bfb8e780b94079ac8 100644 (file)
@@ -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,