我正在阅读一些代码,试图更好地理解它是如何工作的,我发现了这个lambda函数(我真的不太懂lambda(
return lambda **params: self.callMethod(
aname, rargs, oargs, **params)
如果可能的话,lambda的这种用法是否有一个名称,这样我也许可以更好地了解它?我看到了一些lambda的使用,但这似乎不符合我所看到的。或者我只是理解得不够好!
在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将要执行的操作