外部函数的变量被内部函数引用
#add 函数名称或函数的引用
#add() 函数的调用
闭包的使用
这个函数其实就是线性方程 y=ax+b
def a_line(a,b):
def arg_y(x):
return a*x+b
return arg_y
lambda 版
defa_line_a(a,b):
return lambdax: a*x+b
lambda 表达式本身就是一个带返回值的函数,因此return lambda加上函数a_line的a b两个参数就已经组成了闭包。所以最后的return arg_y是多余的。
line1 = a_line_a(3, 5)
print(line1)
<function a_line_a.<locals>.<lambda> at 0x000001FABB800D90>
line1=a_line(3,5)
line2=a_line(5,10)
print(line1(10))
print(line1(20))