如果我的字典中有一个带有无效标识符的键,例如A(2)。如何TypedDict使用此字段创建一个?
A(2)
TypedDict
例如
from typing import TypedDict class RandomAlphabet(TypedDict): A(2): str
是无效的Python代码,导致错误:
SyntaxError: illegal target for annotation
保留关键字也存在相同的问题:
class RandomAlphabet(TypedDict): return: str
抛出:
SyntaxError: invalid syntax
根据PEP 589,您可以使用替代语法来创建a TypedDict,如下所示:
Movie = TypedDict('Movie', {'name': str, 'year': int})
因此,就您而言,您可以编写:
from typing import TypedDict RandomAlphabet = TypedDict('RandomAlphabet', {'A(2)': str})
或第二个例子:
RandomAlphabet = TypedDict('RandomAlphabet', {'return': str})
PEP 589警告,但是:
但是,此语法不支持继承,并且无法在单个类型中同时包含必填字段和非必填字段。这样做的动机是使向后兼容的语法尽可能简单,同时涵盖最常见的用例。