美文网首页
装饰器函数外层再套工厂函数传递参数

装饰器函数外层再套工厂函数传递参数

作者: Chaweys | 来源:发表于2021-07-21 14:53 被阅读0次

两个嵌套函数组成闭包用来作为装饰器,闭包第一层只能传函数名,没有传递参数的位置,
所以最外层的函数的作用是将参数作为局部变量传递给闭包,然后就可以在闭包中使用参数了。


def get_parameter(*args, **kwargs):  #工厂函数,用来接收@get_parameter((1, 2), {"a": "1"})传递的参数(1, 2), {"a": "1"}
    def funOut(func):                #两个嵌套函数组成的闭包用来作为装饰器
        def funIn():
            print(*args, **kwargs)
            print("现在开始装饰")
            func()
            print("装饰结束")
        return funIn
    return funOut


@get_parameter((1, 2), {"a": "1"})
def works():
    print("我是被装饰的函数")
    
结果:
(1, 2) {'a': '1'}
现在开始装饰
我是被装饰的函数
装饰结束
    

相关文章

  • 装饰器函数外层再套工厂函数传递参数

  • day47-中间件、分页及文件上传

    1装饰器(闭包) 装饰器三特征1.外层函数内嵌内层函数2.外层函数返回内层函数3.内层函数调用外层函数的参数不用装...

  • day46-Django校验登录状态

    一、使用装饰器校验登录状态 1.装饰器(1)外层函数内嵌内层函数(2)外层函数返回内层函数(3)内层函数调用外层函...

  • 装饰器

    1.装饰器的概念 装饰器是一个闭包:内层函数引用外层函数的变量(参数也算变量),然后返回内层函数,就是闭包。装饰器...

  • 浅析装饰器的那些事儿

    一、装饰器的简单定义 外层函数返回里层函数的引用,里层函数引用外层函数的变量。 二、装饰器的作用 通俗来讲装饰器的...

  • Python语言学习笔记

    高阶函数:将函数作为参数传递匿名函数lambdaosargparsepsutilsys装饰器:(同类或无类前提)调...

  • python 装饰器

    python 装饰器 描述 python 中一切皆对象,函数也可以当作参数传递 装饰器就是接受一个函数作为参数,添...

  • python装饰器2018-11-19

    装饰器也是个函数 装饰器有参数,参数是函数 装饰器有内嵌函数 装饰器有返回值,返回值是内嵌函数 装饰器使用时直接挂...

  • 装饰器的使用

    函数带多个参数 普通的装饰器, 打印函数的运行时间 装饰器带有多个参数当装饰器带有多个参数的时候, 装饰器函数就需...

  • 一篇文章读懂Python的闭包与装饰器!

    什么是装饰器? 装饰器(Decorator)相对简单,咱们先介绍它:“装饰器的功能是将被装饰的函数当作参数传递给与...

网友评论

      本文标题:装饰器函数外层再套工厂函数传递参数

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