作业题,关于一个函数的问题21讲,简单。回答领鱼币
def make_repeat(n):return lambda s : s * n
double = make_repeat(2)
print(double(8))
print(double('FishC'))
想问一下,dobule=make_repeat(2) 然后又调用了double,并传了8.问题是函数make_repeat(n)里面只可以传一个参数啊,这样子岂不是传了两个,为什么还是对的? 嗯,我也不会,交给留下的大神吧{:10_245:} 丶忘却的年少o 发表于 2017-11-6 16:47
嗯,我也不会,交给留下的大神吧
你是来混鱼币的吗?{:5_96:} retrun lambda s : s * n
返回一个匿名函数make_repeat(2)(8) /('FishC')n=2s=8/FishC
本帖最后由 colinshi 于 2017-11-6 17:18 编辑
先去看匿名函数和高级函数。
lambda s : s * n这个就关键所在。
def make_repeat(n):
def a(s):
return s*n
return a
double = make_repeat(2)
print(double(8))
print(double('FishC'))
改造了一下。。。 内嵌函数,其实不是两个参数,而是外部函数和内部函数各一个参数 函数的嵌套,闭包的内容,double(8),这个8不是传给了n,而是传给了内部函数的变量s 唱离歌的老鼠 发表于 2017-11-6 16:54
你是来混鱼币的吗?
这都被你发现了{:10_245:} 竟然被选为最佳答案了,感谢啊,第一个最佳{:10_254:}{:10_254:} 打开学习
页:
[1]