如果我的字典中有一个带有无效标识符的键,例如A(2)
。我怎样才能创建一个TypedDict
与这个领域?
E.g
from typing import TypedDict
class RandomAlphabet(TypedDict):
A(2): str
不是有效的 Python 代码,导致错误:
SyntaxError: illegal target for annotation
同样的问题也存在于保留关键字上:
class RandomAlphabet(TypedDict):
return: str
throws:
SyntaxError: invalid syntax
根据PEP 589 https://www.python.org/dev/peps/pep-0589您可以使用替代语法 https://www.python.org/dev/peps/pep-0589/#alternative-syntax创建一个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 https://www.python.org/dev/peps/pep-0589/#alternative-syntax但警告说:
然而,这种语法不支持继承,而且没有办法
在单一类型中同时包含必填字段和非必填字段。这
这样做的动机是保持向后兼容的语法
尽可能简单,同时涵盖最常见的用例。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)