小编典典

按键名称无效时的TypedDict

python

如果我的字典中有一个带有无效标识符的键,例如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

阅读 153

收藏
2021-01-20

共1个答案

小编典典

根据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警告,但是:

但是,此语法不支持继承,并且无法在单个类型中同时包含必填字段和非必填字段。这样做的动机是使向后兼容的语法尽可能简单,同时涵盖最常见的用例。

2021-01-20