课后作业021第六题 lambda关键字问题
def make_repeat(n):
return lambda s : s * n
double = make_repeat(2)
print(double(8))
print(double('FishC'))
第二行lambda s:s * n 为什么不会报错,s未定义呀 还有double(8)变量名加()没见过呀,是8自动带入s中计算么 1,请复习lambda语句用法
2,因为make_repeat返回的是一个函数,所以double是那个lambda函数。 你回头再学习一下第20课吧。。。。
1、lambda是一个匿名函数,s是函数的形参,冒号前就是s的来源啊
2、函数作为返回值,返回的是一个可执行对象,当然可以在后面加括号执行啦!
这个lambda展开写是这样子的
def make_repeat(n):
def twice(s):
return s*n
return twice
double = make_repeat(2)
print(double(8))
print(double('FishC'))
返回值还可以是函数?python中果然是一切都是对象!
楼上的解释清晰明了,一步到位,受教了!
{:9_227:} {:9_224:} {:9_240:} {:9_234:} {:10_254:} {:10_279:} {:10_279:} {:9_226:} 帮顶顺便捞一下{:10_257:} sunrise085 发表于 2021-2-6 21:37
你回头再学习一下第20课吧。。。。
1、lambda是一个匿名函数,s是函数的形参,冒号前就是s的来源啊
2、函 ...
明白了,就是s是匿名函数的形参,形参是不需要先定义的,这个意思吧 {:7_112:}
页:
[1]