玩蛇网提供最新Python编程技术信息以及Python资源下载!

请问lambda:lambda:0如何理解

比如说:

f=lambda:lambda:0
f()()

再比如说:

  rsp=f(request,param,True)(request,param,True)

不明白这里f()()是啥么意思,谁能举个更详细的例子?

lambda其实就是单行没有return的,匿名的,函数定义语法形式。

f=lambda:lambda:0

这句翻译成普通的函数定义形式 其实就是

def f():
    def func():
        return 0
    return func

这下清楚多了吧。f是外边函数对象,f()是里面的func函数对象,f()()是0。

g = lambda: 0

等价于

def g(): return 0

所以

f = lambda: lambda: 0

等价于

f = lambda: g

等价于

def f(): return g

所以 f() 就是 g ,而 f()() 自然就是 g() ,也就是 0

lambda是python中的匿名函数 函数定义体与声明必须在同一行 问题中的例子@felix021 讲的已经很明白,我再举几个例子

def add(x,y):
    return x + y
等价于
    lambda x, y: x + y

支持默认参数和可变参数

>>>a = lambda x, y = 2: x + y
>>>a(3)
5
>>>a(3,5)
8
>>> b = lambda *z: z
>>>b(1,2,3)
(1,2,3)
>>>b(10,'aaa')
(10, 'aaa')

这种问题google 一下 lambda 就会知道了 #授之以鱼不如授之以渔#

玩蛇网文章,转载请注明出处和文章网址:https://www.iplaypy.com/wenda/wd20181.html

相关文章 Recommend

玩蛇网Python互助QQ群,欢迎加入-->: 106381465 玩蛇网Python新手群
修订日期:2017年05月24日 - 20时21分34秒 发布自玩蛇网

您现在的位置: 玩蛇网首页 > Python问题解答 > 正文内容
我要分享到:

必知PYTHON教程 Must Know PYTHON Tutorials

必知PYTHON模块 Must Know PYTHON Modules