minipiao 发表于 2021-3-4 22:05:48

零基础Python 21讲课后作业如何理解S的赋值

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

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

巴巴鲁 发表于 2021-3-4 22:25:59

lambda s : s * n可以看成一个有返回值的函数
等价于
def 函数名(s)
    return s*n

minipiao 发表于 2021-3-4 22:32:41

巴巴鲁 发表于 2021-3-4 22:25
lambda s : s * n可以看成一个有返回值的函数
等价于
def 函数名(s)


这个我理解的 ,我不理解的是double = make_repeat(2)这个里的2是传递给n,还是s的,print(double(8)) 这一句运行的结果是16,这里的8传递给n,还是s的??

wp231957 发表于 2021-3-4 22:57:30

minipiao 发表于 2021-3-4 22:32
这个我理解的 ,我不理解的是double = make_repeat(2)这个里的2是传递给n,还是s的,print(double(8))...

只有2是传给n的
8和那个fishc都是传给s的

巴巴鲁 发表于 2021-3-5 08:42:25

minipiao 发表于 2021-3-4 22:32
这个我理解的 ,我不理解的是double = make_repeat(2)这个里的2是传递给n,还是s的,print(double(8))...

函数嵌套啊,你令double = make_repeat(2)
再给double传的值就是s

minipiao 发表于 2021-3-5 19:18:26

巴巴鲁 发表于 2021-3-5 08:42
函数嵌套啊,你令double = make_repeat(2)
再给double传的值就是s

明白了 谢谢!

巴巴鲁 发表于 2021-3-5 21:28:58

minipiao 发表于 2021-3-5 19:18
明白了 谢谢!

如果答案对你有帮助,麻烦设置个最佳答案。{:10_256:}
页: [1]
查看完整版本: 零基础Python 21讲课后作业如何理解S的赋值