当用d = {}
Pycharm的代码检查器初始化字典时会产生警告,说
这个字典创建可以重写为字典文字.
如果我重写它d = dict()
,警告就会消失.由于{}
已经是字典文字,我很确定该消息是错误的.此外,似乎都d = {}
和d = dict()
有效,Python化.
这个相关的问题似乎得出结论,选择只是风格/偏好的问题: "d = dict()"和"d = {}"之间的差异
Pycharm为什么会抱怨d = {}
?
更新:
Mac钉了它.警告实际上应用于多行,而不仅仅是标记的行.
Pycharm似乎在寻找一系列连续的语句,您可以在其中初始化字典,然后在字典中设置值.例如,这将触发警告:
d = {} d['a'] = 1
但是这段代码不会:
d = {} pass d['a'] = 1
mac.. 235
您的字典声明的以下代码是什么?
我认为如果你有类似的东西,pycharm会触发错误:
dic = {} dic['aaa'] = 5
你可以写的
dic = {'aaa': 5}
顺便说一句:如果使用该函数,错误消失的事实并不一定意味着pycharm认为dict()
是文字.这可能只是意味着它没有抱怨:
dic = dict() dic['aaa'] = 5
HTH!
您的字典声明的以下代码是什么?
我认为如果你有类似的东西,pycharm会触发错误:
dic = {} dic['aaa'] = 5
你可以写的
dic = {'aaa': 5}
顺便说一句:如果使用该函数,错误消失的事实并不一定意味着pycharm认为dict()
是文字.这可能只是意味着它没有抱怨:
dic = dict() dic['aaa'] = 5
HTH!
可以在"项目设置"或"默认设置"中禁用此功能.
导航到设置 - >检查 - > Python
取消选中"字典创建可以由字典文字重写"
对于那些喜欢(就像我一样)用单一操作初始化词典的人
d = { 'a': 12, 'b': 'foo', 'c': 'bar' }
而不是像许多行
d = dict() d['a'] = 12 d['b'] = ....
最后我最终得到了这个:
d = dict() d.update({ 'a': 12, 'b': 'foo', 'c': 'bar' })
Pycharm并没有抱怨这个