deng_o3o 发表于 2021-2-6 21:30:42

课后作业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未定义呀

deng_o3o 发表于 2021-2-6 21:31:51

还有double(8)变量名加()没见过呀,是8自动带入s中计算么

qiuyouzhi 发表于 2021-2-6 21:37:39

1,请复习lambda语句用法
2,因为make_repeat返回的是一个函数,所以double是那个lambda函数。

sunrise085 发表于 2021-2-6 21:37:57

你回头再学习一下第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'))

crisfo 发表于 2021-2-6 22:38:33

返回值还可以是函数?python中果然是一切都是对象!
楼上的解释清晰明了,一步到位,受教了!

qq1151985918 发表于 2021-2-6 23:35:08

{:9_227:}

qq1151985918 发表于 2021-2-7 00:41:51

{:9_224:}

qq1151985918 发表于 2021-2-7 00:42:22

{:9_240:}

qq1151985918 发表于 2021-2-7 00:42:52

{:9_234:}

玖玥 发表于 2021-2-7 09:29:09

{:10_254:}

玖玥 发表于 2021-2-7 09:31:03

{:10_279:}

玖玥 发表于 2021-2-7 09:32:10

{:10_279:}

攸鱼 发表于 2021-2-7 10:56:00

{:9_226:}

Yoromi 发表于 2021-2-8 08:43:59

帮顶顺便捞一下{:10_257:}

deng_o3o 发表于 2021-2-8 14:24:27

sunrise085 发表于 2021-2-6 21:37
你回头再学习一下第20课吧。。。。
1、lambda是一个匿名函数,s是函数的形参,冒号前就是s的来源啊
2、函 ...

明白了,就是s是匿名函数的形参,形参是不需要先定义的,这个意思吧

kkl44stupid 发表于 2021-2-8 19:43:45

{:7_112:}
页: [1]
查看完整版本: 课后作业021第六题 lambda关键字问题