小伤口 发表于 2020-11-5 17:29:58

回忆

本帖最后由 小伤口 于 2021-3-10 13:44 编辑

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

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

16
FishCFishC
我想请教一下为什么会打印16
FishCFishC
谢谢各位大佬{:10_254:}

qiuyouzhi 发表于 2020-11-5 18:10:17

先传入一个参数,所以n是2,
然后又传入一个参数,所以s是8
他俩相乘就是16嘛
其次,n是FishC, s是2,
一个字符串乘以n(n为数字)就代表了把字符串重复n遍,结果就是FishCFishC

雨中漫步~ 发表于 2020-11-5 18:12:01

>>> type(double)
<class 'function'>
double()是一个函数,make_repeat(n)的返回值是s * n,double = make_repeat(2),double(8)自然就返回2 * 8 = 16
double('FishC')同理

小伤口 发表于 2020-11-5 23:31:40

雨中漫步~ 发表于 2020-11-5 18:12
>>> type(double)

double()是一个函数,make_repeat(n)的返回值是s * n,double = make_repeat(2),doub ...

谢谢

小伤口 发表于 2020-11-5 23:32:14

qiuyouzhi 发表于 2020-11-5 18:10
先传入一个参数,所以n是2,
然后又传入一个参数,所以s是8
他俩相乘就是16嘛


哦哦谢谢
页: [1]
查看完整版本: 回忆