【发布时间】:2018-04-14 00:45:00
【问题描述】:
通常在 Python 中,应该使用_ 来指示未使用的参数。
def example_basic(unused):
pass
变成
def example_basic(_):
pass
那么如果有多个未使用的参数,则不能使用多个_s,因为它们会冲突,所以使用*_:
def example_multiple(unused1, unused2):
pass
变成
def example_multiple(*_):
pass
最后,如果有多个不相邻的参数未被使用,该怎么办?
def example_non_adjacent(unused1, used, unused2):
return used
使用多个_s 仍然不起作用,使用*_ 将不起作用,因为它们不相邻。
请注意,我非常希望更改 API,但为了这个问题,让我们假设这是不可能的。有没有办法在不使用 # pylint: disable=unused-argument for PyLint 或 i-dont-know-what for PyCharm 的情况下指示它被忽略?
编辑:
我发布了一个需要此功能的示例here
【问题讨论】:
-
为什么要在函数定义中有一个未使用的参数?
-
来自多态性或以其他方式使用框架。我们现在正在使用 django rest 框架来解决它,尽管我很确定我们可以解决它。也就是说,我一直很好奇是否有正确的方法来做到这一点。
-
_主要用于当您从某个地方获得返回值并且您没有使用该值时。不在函数定义中。 -
我只是用它应该是什么来命名这个参数。例如,如果它应该是一个连接,请将其命名为
connection,即使您实际上并没有对该连接做任何事情。 -
def example_basic(_):在我看来是错误的。请不要那样做!