有很棒的Q/A here already用于在python中创建 untyped 字典。我正在努力弄清楚如何创建 typed 字典,然后向其中添加内容。
我想要做的一个例子是...
return_value = Dict[str,str]
for item in some_other_list:
if item.property1 > 9:
return_value.update(item.name, "d'oh")
return return_value
...但是这给我带来了一个错误descriptor 'update' requires a 'dict' object but received a 'str'
我已经尝试了上述声明的其他排列
return_value:Dict[str,str] = None
{p {1}}错误。并尝试
'NoneType' object has no attribute 'update'
或
return_value:Dict[str,str] = dict()
两个错误return_value:Dict[str,str] = {}
。我不知道要像在c#(update expected at most 1 arguments, got 2
)中那样创建空类型字典需要什么。如果可能,我宁愿不避开类型安全性。有人可以指出我的缺失或做错了吗?
答案 0 :(得分:3)
诸如Dict
之类的内容不打算在运行时使用;它们是代表用于静态类型分析的类型的对象。如果要听写,必须使用
return_value = dict()
您不能使用Dict
创建具有受限运行时类型的对象。
答案 1 :(得分:1)
最后2个是Dict
的正确用法,但是您在for循环中使用错误的语法更新了字典。
return_value: Dict[str, str] = dict()
for item in some_other_list:
if item.property1 > 9:
return_value[item.name] = "d'oh"
return return_value