请仔细观看问题并仔细阅读答案,您会发现它不是重复的,尤其是因为他们没有回答我的问题。
尝试创建一个新的空项目,并添加此代码。它工作正常,没有警告:
game_data = {'boats': [], }
game_data['boats'].append({'name': None})
Run Code Online (Sandbox Code Playgroud)
现在将其更改为:
game_data = {'boats': [], 'width': None, 'height': None, }
game_data['boats'].append({'name': None})
Run Code Online (Sandbox Code Playgroud)
仍然没有警告。并再次更改为:
w = 12
game_data = {'boats': [], 'width': None, 'height': w, }
game_data['boats'].append({'name': None})
Run Code Online (Sandbox Code Playgroud)
现在你会得到:
Expected type 'int' (matched generic type '_T'), got 'Dict[str, None]' instead
Run Code Online (Sandbox Code Playgroud)
只有我有这个吗?这是为什么?有没有办法让这个警告消失?
Pat*_*ner 14
我的猜测是给出此警告的分析不够清晰。
值类型为
game_data = {'boats': [], 'width': None, 'height': None}
Run Code Online (Sandbox Code Playgroud)
无法确定。
您输入的第一个“真实”值是一个 int:
w = 12
game_data = {'boats': [], 'width': None, 'height': w}
Run Code Online (Sandbox Code Playgroud)
所以 PyCharm假设这是一个dict(string->int).
然后你将一个内部字典作为值添加到你的空列表中:
game_data['boats'].append({'name': None})
Run Code Online (Sandbox Code Playgroud)
所以现在它有一个 dict(string->int) 突然变得混合起来并警告你。
这与PyCharm 中的这个警告是什么意思大致相同?是关于:使用 pycharm 作为 IDE添加int到list of strings 中。
至于如何摆脱警告:Jetbrains Resharper 是非常可配置的,我猜 pycharm 也是如此。此文档https://www.jetbrains.com/help/pycharm/configuring-inspection-severities.html#severity可能会帮助您配置严重性 - 如果不是,我确信 Jetbrains 的支持很想帮助您 - 他们每当我在使用 resharper 时遇到问题。
| 归档时间: |
|
| 查看次数: |
18043 次 |
| 最近记录: |