请仔细观察问题和this and you'll see it's not a duplicate的答案,特别是因为他们没有回答我的问题。
尝试创建一个新的空项目,并添加此代码。它工作正常,没有警告:
game_data = {'boats': [], }
game_data['boats'].append({'name': None})
现在更改为:
game_data = {'boats': [], 'width': None, 'height': None, }
game_data['boats'].append({'name': None})
仍然没有警告。 再次更改为:
w = 12
game_data = {'boats': [], 'width': None, 'height': w, }
game_data['boats'].append({'name': None})
现在你会得到:
Expected type 'int' (matched generic type '_T'), got 'Dict[str, None]' instead
只有我有这个吗?为什么会这样?有没有办法消除这个警告?
我的猜测是给出这个警告的分析不够清晰。
的值类型
无法确定。
输入的第一个“真实”值是int:
因此PyCharm假设这是一个
dict(string->int)
。然后将内部dict作为值添加到空列表中:
所以现在它有一个dict(string->;int)突然变成了一个混合的东西并警告你。
这与What does this warning in PyCharm mean?的作用差不多:使用pycharm作为IDE将
int
添加到list of string
s中。至于如何摆脱警告:Jetbrains Resharper是非常可配置的,我想pycharm也会。这个文档https://www.jetbrains.com/help/pycharm/configuring-inspection-severities.html#severity可能有助于您配置严重性降低-如果不是我确信Jetbrains的支持急于帮助您-每当我在使用resharper时它们都会出现问题。
相关问题 更多 >
编程相关推荐