如何在Python中表示多个未使用的值?

2024-10-08 20:21:48 发布

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

通常在Python中,应该使用_来表示参数未使用。在

def example_basic(unused):
   pass

变成

^{pr2}$

如果有多个未使用的参数,则不能使用多个_,因为它们会发生冲突,因此使用*_

def example_multiple(unused1, unused2):
   pass

变成

def example_multiple(*_):
   pass

最后,如果有多个非相邻参数未使用,应该怎么做?在

def example_non_adjacent(unused1, used, unused2):
    return used

使用多个_仍然不起作用,使用*_也不起作用,因为它们是非相邻的。在

请注意,我非常希望更改API,但是为了这个问题,让我们假设这是不可能的。有没有一种方法可以在不使用# pylint: disable=unused-argument来表示PyLint或者我不知道什么来表示PyCharm被忽略了吗?在

编辑:

我发布了一个需要这个的例子here


Tags: 参数returnbasicunusedexampledefpassmultiple
3条回答

只要del他们。由于垃圾收集器的工作方式,它的速度非常快。在

def test(test):
    del test

    print('I do not need test parameter here!')

如果使用回调方法传递参数,则给它们一个正确的名称并del。不要将它们表示为未使用。在

这是一个示例回调函数:

^{pr2}$

Pythonistas通常不使用_参数的下划线名称是任何大小写都可能的。
您可能误解了_下划线的用法是一个无用变量的名称。

当我们不知道如何调用一个变量名和/或它不会被使用时,使用_是可以理解的:

# ignore variables when unpacking a tuple
def test():
    """some code here"""

    top = 10
    right = 10
    bottom = 40
    left = 10

    return top, right, bottom, left


# here we ignore right and left
top, _, bottom, _ = test()

# use top and bottom in your code

我见过使用以下习惯用法的代码

def example_non_adjacent(_0, used, _1, _2, _3, also_used):
    ...

如果你真的有很多未使用的变量,我觉得很好。在

也就是说,仅仅因为变量未被使用并不意味着如果省略了它的正确名称,代码的可读性就更高。只有当您真的认为隐藏变量名可以提高代码的可读性和/或理解性时,才应该这样做。在

如果您连接几个下划线,Pylint(以及您代码的其他读者)也会很高兴。如果您这样做,Pylint不会抱怨未使用的参数:

def example_non_adjacent(_, used, __):
    return used

我同意一些评论者的观点,认为这是丑陋的,我会尽力避免它。在

Pylint(和大多数人类读者,我想)也不会抱怨,如果你add the prefix ^{}到你的函数名来传达它们是回调的事实,即使你不想使用它们,你也必须接收一些参数。这对我来说是个更好的解决办法。在

^{pr2}$

相关问题 更多 >

    热门问题