2018-09-29

2018-09-30  本文已影响0人  EDG不是本地g

外部函数的变量被内部函数引用

#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))




装饰器

上一篇 下一篇

猜你喜欢

热点阅读