Commit 1ea0ae74 authored by Raymond Hettinger's avatar Raymond Hettinger

Docs on named tuple's naming conventions and limits of subclassing

parent 0ce3fda7
......@@ -446,7 +446,8 @@ by the :mod:`csv` or :mod:`sqlite3` modules::
print emp.name, emp.title
In addition to the methods inherited from tuples, named tuples support
three additional methods and one attribute.
three additional methods and one attribute. To prevent conflicts with
field names, the method and attribute names start with an underscore.
.. method:: somenamedtuple._make(iterable)
......@@ -533,6 +534,11 @@ faster versions that bypass error-checking and that localize variable access::
def _replace(self, _map=map, **kwds):
return self._make(_map(kwds.get, ('x', 'y'), self))
Subclassing is not useful for adding new, stored fields. Instead, simply
create a new named tuple type from the :attr:`_fields` attribute::
>>> Pixel = namedtuple('Pixel', Point._fields + Color._fields)
Default values can be implemented by using :meth:`_replace` to
customize a prototype instance::
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment