比如说:
f=lambda:lambda:0
f()()
再比如说:
rsp=f(request,param,True)(request,param,True)
不明白这里f()()是啥么意思,谁能举个更详细的例子?
比如说:
f=lambda:lambda:0
f()()
再比如说:
rsp=f(request,param,True)(request,param,True)
不明白这里f()()是啥么意思,谁能举个更详细的例子?
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。
4 回答4.5k 阅读✓ 已解决
1 回答3.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
1 回答3.9k 阅读✓ 已解决
2 回答426 阅读✓ 已解决
等价于
所以
等价于
等价于
所以
f()
就是g
,而f()()
自然就是g()
,也就是 0