zmq 发表于 2020-8-13 09:58:35

lambda 表达式

求助这段代码的实现过程。。。。
def make_repeat(n):
      return lambda s : s * n

double = make_repeat(2)
print(double(8))
print(double('FishC'))
有点看不太明白:
16
FishCFishC

zltzlt 发表于 2020-8-13 10:01:06

这段代码就相当于这样:

def make_repeat(n):

    def double(s):
      return s * n

    return double


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

make_repeat(2) 传进了参数 n,之后把内部的 double 赋值给外部的变量 double,调用 double() 就相当于调用函数内部的 double,所以 double(8) == 8 * n == 8 * 2,double('FishC') == 'FishC' * n == 'FishC' * 2

Twilight6 发表于 2020-8-13 13:56:57


看看这个有没帮助:

lambda表达式
https://fishc.com.cn/thread-174075-1-1.html
(出处: 鱼C论坛)


页: [1]
查看完整版本: lambda 表达式