提问人:sds 提问时间:9/7/2023 更新时间:9/8/2023 访问量:54
标记作为参数传递的函数中未使用的参数
Marking unused parameters in functions passed as arguments
问:
我有一个高阶函数:
def mymap(f,...):
...
x = f(a, logger)
...
我需要传递给它,它只需要一个参数:f
def bigfun(...):
...
def f(a, logger):
return a
mymap(f, ...)
...
上面的代码工作正常,但抱怨pylint
Unused argument 'logger' (unused-argument)
如果我使用以下命令定义:f
_
def bigfun(...):
...
def f(a, _logger):
return a
mymap(f, ...)
...
代码中断
TypeError: bigfun.<locals>.f() got an unexpected keyword argument 'logger'
当然,我可以添加 ,但这是 TRT 吗?# pylint: disable=unused-argument
f
答:
0赞
Pierre.Sassoulas
9/8/2023
#1
它没有显示在您给出的代码中,但为了引发“TypeError: bigfun..f() 得到了一个意想不到的关键字参数 'logger'“,一定是。如果将函数签名从 更改为 ,则带有关键字 args 的调用代码需要使用新名称 () 或变为位置 ()。mymap(f, ...)
mymap(f, logger=my_logger)
logger
_logger
mymap(f, _logger = my_logger)
mymap(f, my_logger)
评论
**kwargs
kwargs
mymap
f
def mymap(f,...):
不是一回事。对于这个问题,我认为一个工作的例子,包括一个真实的呼叫签名,是很重要的。诸如内部功能之类的东西,可能与局部变量结合,也可能不与局部变量结合,并且可以澄清有关和的问题。f
bigfun
*args
**kwargs