jzh 发表于 2018-2-27 16:34:26

小甲鱼第21讲最后一题

def make_repeat(n):
      return lambda s : s * n

double = make_repeat(2)
print(double(8))
print(double('FishC'))


我有一个地方不理解,麻烦给解释一下,这里的s从哪里获取参数,
例子:
double = make_repeat(2)
这里的“2”是“n”还是”s”

BngThea 发表于 2018-2-27 16:37:48

lambda函数中的s是一个临时的变量,就像x一样,用完就扔了
这里2 是 n

冬雪雪冬 发表于 2018-2-27 17:11:50

2是n,8和FishC是s,这里相当于闭包

jzh 发表于 2018-2-27 17:13:55

BngThea 发表于 2018-2-27 16:37
lambda函数中的s是一个临时的变量,就像x一样,用完就扔了
这里2 是 n

double(8) 这个8就是s这个临时变量了是吧

BngThea 发表于 2018-2-27 17:25:28

jzh 发表于 2018-2-27 17:13
double(8) 这个8就是s这个临时变量了是吧

对,此时double是一个闭包
页: [1]
查看完整版本: 小甲鱼第21讲最后一题