在 Python/PyCharm 中明确声明变量未使用

Explicitly declaring variable as unused in Python/PyCharm

有没有办法在 PyCharm 或 Python 中将一个变量声明为未使用,这样您就可以明确告诉编译器不要发出警告?

我不是在谈论为程序员命名未使用变量的约定(通常命名为“_”或“__”),而是为编译器显式标记变量为未使用的选项,例如在循环中.我也不只是想禁用一般检查。

我听说你可以在 PyDev 中通过以 "unused" 开头的变量名来做到这一点,我认为这也可能存在于 PyCharm 中,但还没有找到.

您可以为单个语句禁用此检查,例如:

# noinspection PyUnusedLocal
unused_thing = something()

或整个函数(或 class),将注释放在函数(或 class)上方:

# noinspection PyUnusedLocal
def foo():
    unused_thing = something()

出于某种原因,无法通过检查上下文菜单关闭此特定检查...也许值得一张 pycharm 票。

我注意到对一次性变量名称使用单个下划线似乎可以绕过此检查。我正在使用 PyCharm 2016.1.3.

for _ in range(3):
    pass

另一种方式,类似于 C++ 中的 UNUSED (here),如果您想隐藏特定函数参数的警告但为函数的其余部分保持启用警告,则该方法有效:

# noinspection PyUnusedLocal
def UNUSED(*args, **kwargs):
    pass

def my_function(alpha, beta, gamma):
    UNUSED(gamma)
    return alpha + beta

您可以轻松且最少干扰地忽略 pycharm unused local 警告 (仅)对于未使用的函数参数,方法是在它们前面加上下划线。

例如

在下面的代码中,pycharm不会警告未使用的参数_bar

def foo(_bar):
    print("nothing here")

只是扩展到 sebastian's 答案,如果你使用 decorator 和函数。您需要将

# noinspection PyUnusedLocal

在装饰器之上如果你把它放在装饰器和函数名之间它就不会工作。

# noinspection PyUnusedLocal
@torch.no_grad()
def step(self, closure=None):
    """Performs a single optimization step.

    Arguments:
        closure (callable, optional): A closure that reevaluates the model
            and returns the loss.
    """
    pass