为什么Pycharm的检查员会抱怨“d={}”?

2024-04-25 08:36:12 发布

您现在位置:Python中文网/ 问答频道 /正文

当使用d = {}初始化字典时,Pycharm的代码检查器会生成一个警告,说

This dictionary creation could be rewritten as a dictionary literal.

如果我重写它,警告就会消失。由于{}已经是一个字典文本,所以我很确定该消息是错误的。而且,看起来d = {}d = dict()都是有效的,而且都是Python。

这个相关的问题似乎得出结论,选择只是一个风格/偏好的问题: differences between "d = dict()" and "d = {}"

为什么Pycharm会抱怨d = {}

更新:

麦克搞定了。警告实际上应用于多个行,而不仅仅是被标记的行。

Pycharm似乎在寻找一系列连续的语句,在这些语句中初始化字典,然后在字典中设置值。例如,这将触发警告:

d = {}
d['a'] = 1

但这段代码不会:

d = {}
pass
d['a'] = 1

Tags: 代码警告dictionary字典as语句bethis
3条回答

词典声明的以下代码是什么?

我认为如果你有如下情况,pycharm会触发错误:

dic = {}
dic['aaa'] = 5

你本可以写的

dic = {'aaa': 5}

顺便说一句:如果使用该函数,错误就会消失,这并不一定意味着pycharm相信dict()是一个文本。这可能意味着它不会抱怨:

dic = dict()
dic['aaa'] = 5

啊!

这可以在项目设置或默认设置中禁用。

  • 导航到“设置”->;“检查”->;“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'
})

皮查姆不是在抱怨这个

相关问题 更多 >