为什么Pycharm的检查员抱怨“d = {}”?
当用d = {}
初始化一个字典时,Pycharm的代码检查器产生一个警告,说
这个字典的创build可以被重写为字典文字。
如果我改写它d = dict()
警告消失。 由于{}
已经是字典文字,我很确定这个信息是错误的。 而且,似乎d = {}
和d = dict()
都是有效的,而且是Pythonic。
这个相关的问题似乎得出结论:select只是风格/偏好的问题: “d = dict()”和“d = {}”之间的区别
为什么Pycharm会抱怨d = {}
?
更新:
Mac钉了它。 警告实际上适用于多行,而不仅仅是被标记的警告。
Pycharm似乎寻找一系列连续的语句,在这些语句中初始化字典,然后在字典中设置值。 例如,这将触发警告:
d = {} d['a'] = 1
但是这个代码不会:
d = {} pass d['a'] = 1
什么是您的字典声明以下代码?
我认为pycharm会触发错误,如果你有这样的事情:
dic = {} dic['aaa'] = 5
正如你可以写的
dic = {'aaa': 5}
顺便说一句:如果你使用函数,错误消失的事实并不一定意味着pycharm相信dict()
是一个文字。 这可能意味着它不会抱怨:
dic = dict() dic['aaa'] = 5
HTH!
对于那些喜欢(就像我一样)用单一操作初始化字典
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并不抱怨这一点