初学python,请教问题

初学python,请教问题

def make_incrementor(n):
    return lambda x: x+n

f=make_incrementor(n)
这种 Lambda函数函数为什么return后可以有表达式
刚刚试试了一下
定义那个函数以后 p = make_incrementor(2) 相当于定义了一个函数:
def p(n):
        return 2+n

然后你再 t = p(2) 会返回4
明白了吗?

lambda x: x+n本身是一个函数,相当于:
def p(x):
        return x+n

而你return lambda x: x+n返回的就是一个函数的引用了,所以f最终得到的是一个函数。
不知道你这个程序想要干什么……
恩,那个赋值我明白,相当于JS里匿名函数

我疑问就在
return lambda x: x+n
这个语法比较怪。lambda是一个关键字
意思是返回一个匿名X,X的值为X+N??
return语句就应该是跳出函数里,在return后的语句就不起作用了,这点貌似和其他语言有区别啊
3楼这样解释我有点明白了
lambda定义了一个匿名函数,它的参数是x,函数体是x+n,并返回
return后面的应该是在真正返回之前计算,比如C++中:
int fun(void)
{
    int x=2;
   return x+2:
}
返回的就应该是4