【发布时间】:2012-04-05 09:04:05
【问题描述】:
当“解构”一个元组时,我可以使用_ 来表示我不感兴趣的元组元素,例如
>>> a,_,_ = (1,2,3)
>>> a
1
使用 Python 2.x,我如何用函数参数表达相同的意思?我尝试使用下划线:
>>> def f(a,_,_): return a
...
File "<stdin>", line 1
SyntaxError: duplicate argument '_' in function definition
我也试图完全省略这个论点:
>>> def f(a,,): return a
File "<stdin>", line 1
def f(a,,): return a
^
SyntaxError: invalid syntax
还有其他方法可以达到同样的效果吗?
【问题讨论】:
-
为什么不给你的参数设置默认值呢?为什么函数中有未使用的参数?
-
@jamylak:我使用了一个框架,它希望我在不同的地方传递可调用对象。但是,在很多情况下,我实际上并不需要框架传递的所有参数。
-
@FrerichRaabe 如果框架需要特定的参数,那么无论函数是否使用它们,使用框架为每个参数定义的相同名称似乎是最干净的。这也意味着当您后来发现确实需要其他参数时,您不必更改函数的签名。
-
@jamylak 对于一位同事(以及诸如 pylint 之类的工具)来说,不清楚这些变量是否是有意未使用的。所以你最终会添加某种注释——如果可能的话,我想通过在代码本身中表达这一点来避免这种情况。
-
@jamylak 我并不赞成建议使用
del的答案(我自己也不喜欢它),我反对给论点提供合理的名称,但随后只是简单地不使用它们,因为工具和同事可能会对此提出(电子)眉毛。当然,我总是可以将我的意图记录为英文文本,但我更喜欢用 Python 表达它的东西。
标签: python python-2.x