How can I denote unused function arguments?
The underscore is used for things we don't care about and the * in *args denotes a list of arguments. Therefore, we can use *_ to denote a list of things we don't care about:
def foo(bar, *_):
return bar
It even passes PyCharm's checks.
A funny way I just thought of is to delete the variable:
def f(foo, unused1, unused2, unused3):
del unused1, unused2, unused3
return foo
This has numerous advantages:
- The unused variable can still be used when calling the function both as a positional argument and as a keyword argument.
- If you start to use it later, you can't since it's deleted, so there is less risk of mistakes.
- It's standard python syntax.
- PyCharm does the right thing! (As of 2020, PyCharm no longer does the right thing :( tracking this at https://youtrack.jetbrains.com/issue/PY-39889 )
- PyLint won't complain and using
del
is the solution recommended in the PyLint manual.