我正在阅读一些代码,试图更好地理解它是如何工作的,我遇到了这个lambda函数(我真的不太懂lambda)
return lambda **params: self.callMethod(
aname, rargs, oargs, **params)
如果可能的话,lambda的这种用法是否有名称,所以我可以更好地阅读它?我已经看到了一些lambda的使用,但这似乎不适合我所见过的。或许我只是不太了解它!
答案 0 :(得分:1)
在python中,函数签名可以看起来像
def func(arg, *args, **kwargs):
调用func(1, 123, unnamed=12)
会在arg
中放置1,在{args中放置[123]
,在kwargs放置{unnamed => 12}
。
你提到的lambda只接受命名参数(kwargs),当写成实际函数时会看起来像:
def func(**params):
self.callMethod(aname, rargs, oargs, **params)
将其称为func(something=1)
意味着要self.callMethod(aname, rargs, oargs, something=1)
,而这正是您的lambda将要做的事情。