|
发表于 2020-6-28 21:24:24
|
显示全部楼层
本楼为最佳答案
本帖最后由 Twilight6 于 2020-6-28 21:25 编辑
def make_repeat(n):
return lambda s : s * n
可以看成:
def make_repeat(n):
def func(s):
return s * n
return func
只不过 lambda 是匿名函数 没有函数名 所以这里 func 是我添加上去的,则你假如 这样调用 double = make_repeat(2)
那么就可以看成(实际上不能这样写哈只是给你演示的):
def make_repeat(2):
def func(s):
return s * 2
return func
因为 make_repeat 函数返回的是 func 这个函数 则这个时候 double = make_repeat(2) 就等价于 double = func
然后你再次调用 double(8) 相当于 func(8) 则此时函数是这样的 :
def func(8):
return 8 * 2
所以返回的 16
而 FishC 也是 同理 只不过 FishC * 2 是等于把字符串重复两遍后拼接
|
|