當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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