tianyamingyue 发表于 2020-2-18 21:32:33

21课第六题的答案看不懂。

21课的习题答案看不懂,
def make_repeat(n):
      return lambda s : s * n

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

我理解double应该是个变量名,不是个函数,怎么他还能带参数,s这个变量怎么给赋值的?

zltzlt 发表于 2020-2-19 09:38:43

double 是一个函数。其实上面那段代码可以这么写:

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


double = make_repeat(2)   # 此时得到的 double 函数为函数内部的 double 函数
print(double(8))
print(double('FishC'))

Sungne_jer 发表于 2020-2-19 10:20:00

可以了解一下lambda表达式
页: [1]
查看完整版本: 21课第六题的答案看不懂。