I have a higher order function:
def mymap(f,...):
...
x = f(a, logger)
...
and I need to pass to it f that needs only one argument:
def bigfun(...):
...
def f(a, logger):
return a
mymap(f, ...)
...
the code above works fine, but pylint complains about
Unused argument 'logger' (unused-argument)
If I define f using _:
def bigfun(...):
...
def f(a, _logger):
return a
mymap(f, ...)
...
the code breaks with
TypeError: bigfun.<locals>.f() got an unexpected keyword argument 'logger'
I can, of course, add # pylint: disable=unused-argument to f, but is this TRT?
It's not shown in the code you gave but in order to raise "TypeError: bigfun..f() got an unexpected keyword argument 'logger'",
mymap(f, ...)must have beenmymap(f, logger=my_logger)instead. If you change your function signature fromloggerto_logger, then the calling code with keyword args needs to use the new name (mymap(f, _logger = my_logger)) or become positional (mymap(f, my_logger)).