Python 函数
def make_repeat(n):return lambda s : s * n
double = make_repeat(2)
print(double(8))
函数表达式没提到s啊 为啥直接代入了
8就是其中的s啊
double = make_repeat(2)
# double就是lambda s: s * 2
# 换个方式写就是
# def double(s):
# return s * 2
这是闭包,make_repeat 这个函数返回一个接受一个参数 s 的函数,
且 n 由它的外部函数 make_repeat 来固定,
也就是 double = make_repeat(2) 得到的是一个 n 被固定为 2 的 lambda 函数,
double(8) 是将 8 传给 lambda 函数的 s,得到 s * 2 的返回值
页:
[1]