Pycharm的理由“可以重写”建议吗?

问题描述 投票:-1回答:1

在Pycharm中,当我列出列表,然后将第一项附加到末尾:

my_list = ['a', 'b', 'c']
my_list.append(my_list[0])

Pycharm强调第一行代码并说:

"This list creation could be written as a list literal."

当我单击此建议以自动解决此问题时,它用以下代码替换了第一行代码:

my_list = ['a', 'b', 'c', my_list[0]]

当然会出现另一个错误,因为尚未定义my_list。我的问题是,如果pycharm很明显会提供另一个错误,为什么会建议这样做呢?有什么我想念的吗?

python pycharm
1个回答
0
投票

似乎PyCharm正在寻找这样的情况:

<name> = [<values>]
<name>.append(<value>)

并提供将其转换为:

<name> = [<values>, <value>]

这是此检查逻辑的极限,因此,即使您选择应用建议的转换,即使它会立即报告未解决的参考,但PyCharm仍会建议它。

似乎中间的任何代码(尽管有[[not注释)都将阻止检查的触发,所以例如]

<name> = [<values>] "shut up PyCharm" <name>.append(<value>)
将抑制检查。
© www.soinside.com 2019 - 2024. All rights reserved.