我有一个像这样的东西(非常简化):
# mymodule.py
from typing import TypedDict, cast
D=TypedDict('D', {'x':int, 'y':int})
d = {}
d['x']=1
d['y']=2
d = cast(D, d)
但是我的mypy抱怨:
mymodule.py:9: error: 分配中存在不兼容的类型(表达式的类型为“D”,变量的类型为“Dict [str,int]”) 在1个文件(检查了1个源文件)中发现1个错误
将普通字典转换为TypedDict
子类型是否有效?如果无效,那么正确的方式是如何“构建”一个字典,然后在之后声明其类型?
请注意,这很简化; 实际上,该字典是从比上面给出的更复杂的算法中构建的。
更新:即使我更改变量名称而不是尝试强制转换类型,问题似乎仍然存在。
# mymodule.py
from typing import TypedDict, cast
D=TypedDict('D', {'x':int, 'y':int})
d = {}
d['x']=1
d['y']=2
dd: D = d
错误:赋值时不兼容的类型(表达式的类型为“Dict [str,int]”,变量的类型为“D”)在1个文件中发现了1个错误(检查了1个源文件)