14

SyntaxError: invalid syntax尝试新的类型化namedtuple语法时出现错误:

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

在 Python 3.5.2 中,即使根据文档它应该从 3.5+ 开始有效。我错过了什么吗?我已经NamedTupletyping代码中导入。

4

1 回答 1

20

name声明您正在使用的和id字段的类型的语法需要Python 3.6 或更高版本。Python 3.5 不支持所需的变量级类型提示。

typing.NamedTuple文档中:

在 3.6 版更改: 添加了对PEP 526变量注释语法的支持。

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

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

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

如果您使用的是 Python 3.5,您可能希望切换到文档的 Python 3.5 版本(左上角有一个选择器,或者您可以3将 URL 中的替换为3.5)。

于 2017-02-02T12:43:49.953 回答