“分配前引用”警告用于琐碎条件序列中的变量的原因

2024-06-07 17:08:54 发布

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

在这段琐碎的代码中出现Local variable 's' might be referenced before assignment警告有什么好的理由吗:

def nonsense():
    condition = True
    if condition:
        s = "I am set."

    if condition:
        print(s)

来自PyCharm 2019.2.6的屏幕截图:

warning example

备注:

  • 我在更复杂(和有用)的情况下遇到过这个问题,但我想指出的是,它甚至发生在一行中两个相同条件的小情况下
  • 我天真的假设是condition在任何情况下都不能在两个if语句之间改变。如果这是真的,我认为警告是静态代码分析的限制。<李>
  • 可选子问题:您的最佳解决方法是什么?通过在所有情况下设置s来膨胀代码,尽管不是必需的

Tags: 代码警告iflocaldef情况becondition
1条回答
网友
1楼 · 发布于 2024-06-07 17:08:54

Is there any good reason for the Local variable 's' might be referenced before assignment warning in this trivial piece of code:

不是真的。只是IDE认为,由于赋值/初始化s='I am set'发生在一个条件if condition:内(不管该条件是什么),所以可能没有发生赋值。这就是警告

IDE毕竟不是那么智能

相关问题 更多 >

    热门问题