Python 3.5 typed NamedTuple 语法产生 SyntaxError

Python 3.5 typed NamedTuple syntax produces SyntaxError

我尝试使用新的 namedtuple 语法时出现 SyntaxError: invalid syntax 错误:

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

在 Python 3.5.2 中,尽管根据 the documentation 它应该从 3.5+ 开始有效。我错过了什么吗?我在代码中从 typing 导入了 NamedTuple

声明您正在使用的 nameid 字段类型的语法需要 Python 3.6 or up。 Python 3.5 不支持所需的 variable-level 类型提示。

来自typing.NamedTuple documentation

Changed in version 3.6: Added support for PEP 526 variable annotation syntax.

使用文档中也包含的向后兼容语法

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

因此将字段名称列为 (name, type) 个元组。

如果您使用的是 Python 3.5,您可能需要切换到 Python 3.5 version of the documentation(top-left 角有一个选择器,或者您可以将 3 在 URL 和 3.5).