PY3.W1113

Keyword arg before vararg

When defining a keyword argument before variable positional arguments, one can end up in having multiple values passed for the aforementioned parameter in case the method is called with keyword arguments.

Noncompliant Code:

Copy
def foo(x, y=None, *args):
    return [x, y, *args]
print(foo(1, 2, 3))

Compliant Code:

Copy
def foo(*args, y=None):
    return [*arg, y]
print(foo(1, 2, 3))

The content on this page is adapted from the Pylint User Guide, Copyright ©2003-2022, Logilab, PyCQA and contributors. All rights reserved. https://pylint.pycqa.org/en/latest/index.html#, and is used under the Python Software Foundation License Version 2. Examples, recipes, and other code in the Pylint documentation are additionally licensed under the Zero Clause BSD License.