用法:
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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。