I get a SyntaxError: invalid syntax
error when I try the new typed namedtuple syntax:
class Employee(NamedTuple):
name: str
id: int
in Python 3.5.2 even though according to the documentation it should be valid from 3.5+ onwards. Am I missing something? I've imported NamedTuple
from typing
in the code.
The syntax to declare the types for the
name
andid
fields you are using requires Python 3.6 or up. Python 3.5 does not support the variable-level type hints required.From the
typing.NamedTuple
documentation:Use the backwards compatible syntax also included in the documentation:
so listing the field names as
(name, type)
tuples.If you are using Python 3.5, you may want to switch to the Python 3.5 version of the documentation instead (there is a selector in the top-left corner, or you can just replace the
3
in the URL with3.5
).