Pycharm - 禁用'局部变量'xxx'可能在分配之前被引用'

Posted

技术标签:

【中文标题】Pycharm - 禁用\'局部变量\'xxx\'可能在分配之前被引用\'【英文标题】:Pycharm - Disable 'Local variable 'xxx' might be referenced before assignment'Pycharm - 禁用'局部变量'xxx'可能在分配之前被引用' 【发布时间】:2019-08-04 22:25:55 【问题描述】:

在 pycharm 中,我想禁用以下检查警告: “局部变量 'xxx' 可能在赋值之前被引用”,但我在设置/检查中找不到它。

PS:这不是重复的,因为我理解这个警告。我只是问如何在pycharm中禁用它。

更新:请在下面找到我的意思的示例

cond = True
def add1(x):
    return x+1
if cond:
    a = 1
if cond:
    b = add1(a) # the warn is on the 'a'

解决方案:

“未绑定的局部变量”检​​查。 (参见下面的 Lomtrur 答案)

【问题讨论】:

您是否使用了全局变量xxx?是什么导致了这个警告? 不,它是一个局部变量。在 main() 中,if cond : var =fct1() 和后来的 fct2(var) 显示此警告。但我不在乎,这是我的编码风格。 如果在a 后面单击并按Alt+Enter 会发生什么?这应该告诉您要禁用哪个检查,或者这不起作用?你的 PyCharm 版本是多少? 这是“未绑定的局部变量”检​​查。感谢 Lomtrur 这个方法。 【参考方案1】:

您可以通过在警告前的行中添加以下注释来在本地禁用它:

# noinspection PyUnboundLocalVariable

它只适用于那个实例。

如果您将那段代码放在函数或方法声明之前,它将抑制整个函数或方法的消息。

你的情况

if cond:
    # noinspection PyUnboundLocalVariable
    b = add1(a)

【讨论】:

【参考方案2】:

将光标紧跟在a 之后。它应该有彩色背景或带下划线以表明这是警告所在的位置。然后按Alt+Enter 打开上下文菜单。这应该向您展示检查是什么,并提供禁用它的选项。 (PyCharm 2018.2.5 专业版)

【讨论】:

太棒了。解决方案是“未绑定局部变量”检​​查。谢谢你的方法,我也学会了钓鱼。 另外,这个方法,以及代码分析方法,都被描述为in the documentation section on suppressing inspections。如果您不了解代码分析方法,我会检查一下,因为它也很强大。

以上是关于Pycharm - 禁用'局部变量'xxx'可能在分配之前被引用'的主要内容,如果未能解决你的问题,请参考以下文章

关于在pycharm下提示ModuleNotFoundError: No module named 'XXX' 的一种可能

如何禁用警告“省略局部变量的类型注释”?在 Dart 中(带有 Pedantic 包)

将Python函数范围仅限于局部变量

如何在鼠标悬停时禁用 JetBrains IDE(IntelliJ IDEA、PyCharm、WebStorm)中的自动显示提示

全局变量和局部变量

xxx