New submission from Raymond Hettinger <raymond.hettin...@gmail.com>:
The attribute name, '_fields_defaults' was misspelled and should have been ''_field_defaults'. The namedtuple documentation uses both spellings. The typing.NamedTuple class consistently uses the latter spelling. The intent was the both would be spelled the same way. >>> from typing import NamedTuple >>> class Employee(NamedTuple): name: str id: int = 3 >>> Employee._field_defaults {'id': 3} >>> from collections import namedtuple >>> Employee = namedtuple('Employee', ['name', 'id'], defaults=[3]) >>> Employee._fields_defaults {'id': 3} Since 3.7 API is already released, it may be reasonable to provide both spellings for namedtuple(). ---------- assignee: rhettinger components: Library (Lib) messages: 338096 nosy: rhettinger priority: normal severity: normal status: open title: Fix misspelled attribute name in namedtuple() type: behavior versions: Python 3.7, Python 3.8 _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue36321> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com