Python &引用;上文定义的重新声明的s未使用“;
上面的代码在IntelliJ中为第二行给出了这个问题的标题作为警告Python &引用;上文定义的重新声明的s未使用“;,python,intellij-idea,Python,Intellij Idea,上面的代码在IntelliJ中为第二行给出了这个问题的标题作为警告 我敢肯定,之所以会出现这种警告,是因为在CFG中,由于嵌套循环,可能会有两次连续写入s。到目前为止,我一直忽视这个警告,但为了安全起见,我想要求确认我的假设。你的假设几乎是正确的。名称s被限定为一个整数,该整数的值在封闭循环中从未使用过,也从未更改过,但在嵌套循环中它会反弹为另一个值(尽管这会引起错误)。请注意,第一个赋值不会随着外部for循环的任何迭代而改变 IDE的警告表明循环中的第一个赋值是不必要的,因为s从未更改过。赋值
我敢肯定,之所以会出现这种警告,是因为在CFG中,由于嵌套循环,可能会有两次连续写入
s
。到目前为止,我一直忽视这个警告,但为了安全起见,我想要求确认我的假设。你的假设几乎是正确的。名称s
被限定为一个整数,该整数的值在封闭循环中从未使用过,也从未更改过,但在嵌套循环中它会反弹为另一个值(尽管这会引起错误)。请注意,第一个赋值不会随着外部for
循环的任何迭代而改变
IDE的警告表明循环中的第一个赋值是不必要的,因为s
从未更改过。赋值最好放在for
循环之外,这样可以防止冗余绑定和重新绑定:
for i in range(10):
s = 5
for j in range(10):
s = min(s)
这就是它所说的。
你在没有使用或定义的情况下重新制作了一些东西。
像我一样,例如:
s = 5
for i in range(10):
...
跑
错误,我重新定义了这个函数,据我所知,我不能这样做,我没有让它做任何事情。
虽然我在使用这个函数,但没有意识到我在重新定义它
更正
def car(e):
color = "blue"
print(color)
def car(r):
您不断为
s
赋值,但从不使用它。IDE指出没有理由这样做,这似乎是一个合理的假设。由于总是在s=5
之后运行for
循环,因此该代码是多余的。如果您正在枚举其他内容,比如可能为空的列表,那么初始化s是有理由的(即使这样,else
子句也会更好),但这里没有。
def car(e):
color = "blue"
print(color)
car(e)