【发布时间】:2012-01-14 10:17:22
【问题描述】:
当使用d = {} 初始化字典时,Pycharm 的代码检查器会生成一个警告,说
这个字典创建可以重写为字典文字。
如果我重写它d = dict(),警告就会消失。由于{} 已经是 字典文字,我很确定该消息是错误的。此外,d = {} 和 d = dict() 似乎都是有效的和 Pythonic 的。
这个相关问题似乎得出结论,选择只是风格/偏好问题: differences between "d = dict()" and "d = {}"
为什么 Pycharm 会抱怨 d = {}?
更新:
Mac 做到了。该警告实际上应用于多行,而不仅仅是被标记的那一行。
Pycharm 似乎在寻找一系列连续的语句,您可以在其中初始化字典,然后在字典中设置值。例如,这将触发警告:
d = {}
d['a'] = 1
但是这段代码不会:
d = {}
pass
d['a'] = 1
【问题讨论】:
-
太吵了,并没有真正的性能提升,只是多了一个多余的检查
-
列表也会发生同样的事情:a = [1]; a.append(2),可能是因为 a=[1, 2] 更好......
-
是的。烦人的消息。 PyCharm 的所有这些下划线在执行程序之前都会让人感到不舒服。
-
我在 JetBrains YouTrack - youtrack.jetbrains.com/issue/PY-19269#u=1461253420326 中发现了类似的问题,它说:在这种情况下,PyCharm 建议您可以将
something属性的值直接提供到 dict 文字中,而不是在下一行。