这个lambda函数有什么作用? (lambda里面有函数调用)

时间:2015-07-05 09:21:14

标签: python lambda

我正在阅读一些代码,试图更好地理解它是如何工作的,我遇到了这个lambda函数(我真的不太懂lambda)

return lambda **params: self.callMethod(
    aname, rargs, oargs, **params)

如果可能的话,lambda的这种用法是否有名称,所以我可以更好地阅读它?我已经看到了一些lambda的使用,但这似乎不适合我所见过的。或许我只是不太了解它!

1 个答案:

答案 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将要做的事情。