用法:
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 typing.NoReturn用法及代码示例
- Python typing.get_type_hints用法及代码示例
- Python typing.Concatenate用法及代码示例
- Python typing.Optional用法及代码示例
- Python typing.Final用法及代码示例
- Python typing.TypedDict.__optional_keys__用法及代码示例
- Python typing.Protocol用法及代码示例
- Python typing.TypedDict.__total__用法及代码示例
- Python typing.is_typeddict用法及代码示例
- Python typing.TypeVar用法及代码示例
- Python typing.AsyncGenerator用法及代码示例
- Python typing.final用法及代码示例
- Python typing.ClassVar用法及代码示例
- Python typing.ParamSpec用法及代码示例
- Python typing.Literal用法及代码示例
- Python typing.overload用法及代码示例
- Python typing.TYPE_CHECKING用法及代码示例
- Python typing.TypedDict用法及代码示例
- Python typing.List用法及代码示例
- Python typing.Generic用法及代码示例
注:本文由纯净天空筛选整理自python.org大神的英文原创作品 typing.NamedTuple。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。