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
。
声明您正在使用的 name
和 id
字段类型的语法需要 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
).
我尝试使用新的 namedtuple
语法时出现 SyntaxError: invalid syntax
错误:
class Employee(NamedTuple):
name: str
id: int
在 Python 3.5.2 中,尽管根据 the documentation 它应该从 3.5+ 开始有效。我错过了什么吗?我在代码中从 typing
导入了 NamedTuple
。
声明您正在使用的 name
和 id
字段类型的语法需要 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
).