按键名称无效时的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警告,但是:
但是,此语法不支持继承,并且无法在单个类型中同时包含必填字段和非必填字段。这样做的动机是使向后兼容的语法尽可能简单,同时涵盖最常见的用例。