当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python typing.NamedTuple用法及代码示例


用法:

class typing.NamedTuple

collections.namedtuple() 的键入版本。

用法:

class Employee(NamedTuple):
    name: str
    id: int

这相当于:

Employee = collections.namedtuple('Employee', ['name', 'id'])

要给一个字段一个默认值,你可以在类体中给它赋值:

class Employee(NamedTuple):
    name: str
    id: int = 3

employee = Employee('Guido')
assert employee.id == 3

具有默认值的字段必须位于任何没有默认值的字段之后。

生成的类有一个额外的属性__annotations__,它提供了一个将字段名称映射到字段类型的字典。 (字段名称在 _fields 属性中,默认值在 _field_defaults 属性中,两者都是 namedtuple API 的一部分。)

NamedTuple 子类也可以有文档字符串和方法:

class Employee(NamedTuple):
    """Represents an employee."""
    name: str
    id: int = 3

    def __repr__(self) -> str:
        return f'<Employee {self.name}, id={self.id}>'

Backward-compatible 用法:

Employee = NamedTuple('Employee', [('name', str), ('id', int)])

在 3.6 版中更改:增加了对PEP 526变量注释语法。

在 3.6.1 版中更改:添加了对默认值、方法和文档字符串的支持。

在 3.8 版中更改: _field_types__annotations__属性现在是常规字典而不是OrderedDict.

在 3.9 版中更改:删除了_field_types属性有利于更标准__annotations__具有相同信息的属性。

相关用法


注:本文由纯净天空筛选整理自python.org大神的英文原创作品 typing.NamedTuple。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。