python - 为什么 Pycharm 的检查员提示 "d = {}"?

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

This dictionary creation could be rewritten as a dictionary literal.

如果我重写它 d = dict() 警告就会消失。由于 {} 已经 is 字典文字,我很确定该消息是错误的。此外,似乎 d = {}d = dict() 都是有效的并且是 Pythonic。

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

为什么 Pycharm 会提示 d = {}

更新:

Mac 做到了。该警告实际上应用于多行,而不仅仅是被标记的那一行。

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

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

但是这段代码不会:

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

最佳答案

你的字典声明后面的代码是什么?

我认为如果你有类似的情况,PyCharm 会触发错误:

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

正如你所写的那样

dic = {'aaa': 5}

注意:如果您使用函数 dict(),错误就会消失。这并不一定意味着 pycharm 相信 dict() 是文字。这可能只是意味着它不会提示它:

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

关于python - 为什么 Pycharm 的检查员提示 "d = {}"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8406242/

相关文章:

linux - 如何在 Ubuntu 上设置和运行 PhantomJS?

linux - 退出 bash 脚本但不退出终端的任何方式

python - 如何一次检查多个键是否在一个字典中?

linux - sed 中的环境变量替换

c - 如何将文件指针 ( FILE* fp ) 转换为文件描述符 (int fd)?

python - 如何获得 Pandas 系列的元素逻辑非?

python - 如何根据任意条件函数过滤字典?

python - 如何查找我的系统中安装了哪个版本的 TensorFlow?

python - 使用 dict 文字和 dict 构造函数之间有区别吗?

c - errno 是线程安全的吗?