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

Python 闭包与装饰器图解

作者: 风舞柏杨 | 来源:发表于2018-05-11 21:36 被阅读0次

python万物皆对象!

闭包

闭包:两个函数的嵌套,外部函数返回内部函数的引用,外部函数一定有参数

def 外部函数(参数):

    def 内部函数():

        pass

    return 内部函数

他跟函数之间的区别:

        1.格式两个函数嵌套

        2.闭包外部函数的参数可以在内存中保持

装饰器

装饰器是什么:闭包加@xxx

装饰器的作用:在不改变原先的函数值跟调用的方式,添加额外的功能

装饰器的代码:

    def set_fun(func):

        def call_fun(*args,**kwargs):

            return func(*args,**kwargs)

        return call_fun

    @set_fun   

    def test():

        pass

装饰器结论:

1.装饰前的函数test,是由func指向的

2.装饰后的函数test,实际是call_fun

3.装饰前的test,call_fun,func三者参数一致

4.装饰器不能去改变函数的调用方式跟返回值(道德)

一个装饰器一个函数了解

二个装饰器装饰一个函数图解大法

二个装饰器装饰器一个函数内存图了解

装饰器传参

在闭包外层再套一层,返回闭包的引用

def set_args(args):

    def set_fun(func):

        def call_fun(*args,**kwargs):

            return func(*args,**kwargs)

        return call_fun

    return set_fun

@set_args("xx")  #这个要分两步执行,第一步执行set_args("xx")函数得到一个闭包的最外层的引用,第二步去@闭包的最外层引用去执行原先的装饰器过程

def test():

    print("test") 

相关文章

  • Python 闭包与装饰器图解

    python万物皆对象! 闭包 闭包:两个函数的嵌套,外部函数返回内部函数的引用,外部函数一定有参数 def 外部...

  • Python的自定义超时机制——装饰器的妙用

    装饰器 关于装饰器的入门,可以参考这篇文章:12步轻松搞定python装饰器简单来说,装饰器其实就是一个闭包(闭包...

  • 2020-012 python闭包与装饰器

    python闭包与装饰器 闭包 函数和对其周围状态(lexical environment,词法环境)的引用捆绑在...

  • Python装饰器-专题笔记

    学会装饰器,Python更进阶 函数作用域到闭包到装饰器讲解,及闭包和装饰器的运用。 [√] 慕课网Meshare...

  • [python] 装饰器学习

    很多python的代码都带有装饰器=。=现在不学以后也要学学一下装饰器 闭包 在学装饰器之前先看看python的闭...

  • Python 2 - 高级用法 - 装饰器

    Python 2 - 高级用法 - 装饰器 一谈到 装饰器,就离不开闭包 闭包 闭包就是能够读取其他函数内部变量的...

  • Python装饰器——初识

    上次讲了Python的闭包,今天来讲一下闭包的应用——装饰器 1. 装饰器是什么 什么叫装饰器?顾名思义,它是一个...

  • python装饰器

    装饰器简述 要理解装饰器需要知道Python高阶函数和python闭包,Python高阶函数可以接受函数作为参数,...

  • python之理解闭包和装饰器

    python之理解闭包和装饰器 1、闭包函数 1.1 python中函数都是对象 结果: 上面定义一个shut函数...

  • Python闭包与装饰器

    闭包 1.函数引用 运行结果: 2.什么是闭包 运行结果: 3.重讲闭包 内部函数对外部函数作用域里变量的引用(非...

网友评论

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

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