Python 3.5类型的NamedTuple语法产生SyntaxError

daj*_*daj 9 python type-hinting python-3.5

SyntaxError: invalid syntax在尝试新的类型化的namedtuple语法时遇到错误:

class Employee(NamedTuple):
    name: str
    id: int
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*ers 15

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

typing.NamedTuple文档:

版本3.6中已更改:添加了对PEP 526变量注释语法的支持.

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

Employee = NamedTuple('Employee', [('name', str), ('id', int)])
Run Code Online (Sandbox Code Playgroud)

所以将字段名称列为(name, type)元组.

如果您使用的是Python 3.5,则可能需要切换到文档Python 3.5版本(左上角有一个选择器,或者只能替换3URL中的选择器3.5).