我怎样才能表示未使用的函数参数?
当“解构”一个元组时,我可以用_来表示我不感兴趣的元组元素,例如 
 >>> a,_,_ = (1,2,3) >>> a 1 
使用Python 2.x,我怎样才能expression与函数参数相同? 我试图使用下划线:
 >>> 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 
还有另外一种方法来实现吗?
以下是我用未使用的参数做的事情:
 def f(a, *unused): return a 
我刚才想到的一个有趣的方法是删除variables:
 def f(foo, unused1, unused2, unused3): del unused1, unused2, unused3 return foo 
这具有许多优点:
- 调用该函数时,仍然可以使用未使用的variables作为位置参数和关键字参数
- 如果你以后开始使用它,你不能删除它,所以减less错误的风险
- 这是标准的Python语法
- pycharm做正确的事情!
下划线用于我们不关心的事情,* in * args表示参数列表。 因此,我们可以使用* _来表示一个我们不关心的事情的列表:
 def foo(bar, *_): return bar 
它甚至通过了PyCharm的检查。
如果你有args和关键字arg,你应该使用
 def f(a, *args, **kwargs): return a 
 我认为接受的答案是不好的,但是如果你使用我应该称之为“Perl方法”来处理参数的话,它仍然可以工作(我真的不知道Perl,但是在看到sub语法之后我不再试图学习它,手动参数解包): 
你的函数有3个参数 – 这就是它所调用的(鸭子键入,记得吗?)。 所以你得到:
 def funfun(a, b, c): return b * 2 
2个未使用的参数。 但是现在,进入改进的人文主义的方法:
 def funfun(*args): return args[1] * 2 
那里有警告
不过,我仍然喜欢更多的盒装方式:
 def funfun(a, b, c): del a, c return b * 2 
它保持参数名称的自我logging质量。 他们是一个function,而不是一个错误。
 但是,语言本身并不强迫你 – 你也可以换个angular度,让所有的函数都有签名(*args, **kwargs) ,并且每次都手动进行参数parsing。 想象一下给你的控制水平。 在更改“签名”(参数数量和含义)后,不要以过时的方式调用exception。 这是值得考虑的事情;)