扫码关注官方订阅号
比如说:
f=lambda:lambda:0 f()()
再比如说:
rsp=f(request,param,True)(request,param,True)
不明白这里f()()是啥么意思,谁能举个更详细的例子?
光阴似箭催人老,日月如移越少年。
g = lambda: 0
等价于
def g(): return 0
所以
f = lambda: lambda: 0
f = lambda: g
def f(): return g
所以 f() 就是 g ,而 f()() 自然就是 g() ,也就是 0
f()
g
f()()
g()
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 就会知道了 #授之以鱼不如授之以渔#
lambda其实就是单行没有return的,匿名的,函数定义语法形式。
f=lambda:lambda:0
这句翻译成普通的函数定义形式 其实就是
def f(): def func(): return 0 return func
这下清楚多了吧。f是外边函数对象,f()是里面的func函数对象,f()()是0。
f
func
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
等价于
所以
等价于
等价于
所以
f()就是g,而f()()自然就是g(),也就是 0lambda是python中的匿名函数 函数定义体与声明必须在同一行 问题中的例子@felix021 讲的已经很明白,我再举几个例子
支持默认参数和可变参数
这种问题google 一下 lambda 就会知道了 #授之以鱼不如授之以渔#
lambda其实就是单行没有return的,匿名的,函数定义语法形式。
这句翻译成普通的函数定义形式 其实就是
这下清楚多了吧。
f是外边函数对象,f()是里面的func函数对象,f()()是0。