美文网首页
Python 闭包 与 装饰器

Python 闭包 与 装饰器

作者: 魔法高校的劣等生 | 来源:发表于2017-07-15 16:54 被阅读0次

    运行结果如下:

    闭包的定义:在函数内部再定义一个函数,并且这个函数用到了外边函数的变量,那么将这个函数以及用到的一些变量称之为闭包

    1.闭包似优化了变量,原来需要类对象完成的工作,闭包也可以完成

    2.由于闭包引用了外部函数的局部变量,则外部函数的局部变量没有及时释放,消耗内存



    装饰器的定义:装饰器,功能就是在运行原来功能基础上,加上一些其它功能,比如权限的验证,比如日志的记录等等。不修改原来的代码,进行功能的扩展。

    比如java中的动态代理,python的注解装饰器

    其实python的装饰器,是修改了代码

    例子一:

    @w1 内部会执行以下操作

    执行w1函数 ,并将 @w1 下面的函数名作为w1函数的参数,即:@w1 等价于 w1(f1) 所以,内部就会去执行。   

    w1的返回值;将执行完的w1函数返回值 赋值 给@w1下面的函数的函数名f1 即 将w1的返回值再重新赋值给 f1  ,即  f1()=inner()


    先将f1赋值给参数,inner赋值给f1,这样f1( )调用的就是inner( ),inner的返回值就是func,func( )调用的就是外部的这个函数。

    相关文章

      网友评论

          本文标题:Python 闭包 与 装饰器

          本文链接:https://www.haomeiwen.com/subject/pqkohxtx.html