zoukankan      html  css  js  c++  java
  • 通用装饰器

    通用装饰器

    def wrapper(fun):
        def inner(*args,**kwargs):
            print(f"before execute target {fun} ")
            ret=fun(*args,**kwargs)
            print(f"after execute target {fun}")
            return ret
        return inner


    @wrapper
    def fun(*args,**kwargs):
        print(args)
        print(kwargs)
        print("test")
        return 1

    if __name__=="__main__":
       ret=fun(a=2,b=4)
       print(ret)

     带有参数的装饰器:

    def wrapper_outer(name):
        def wrapper(fun):
            """
        
            :param fun: 被装饰的函数
            :return: inner
            """
            def inner(*args,**kwargs):
                print(f"warpper_outer agrs is {name} ")
                ret=fun(*args,**kwargs)
                print(f"after execute target {fun}")
                return ret
            return inner
        return wrapper
    @wrapper_outer("user")  #先执行函数的调用,函数返回一个装饰器,和@组合成语法糖,@wrapper
    def fun(*args,**kwargs):
        print(args)
        print(kwargs)
        return 1

    if __name__=="__main__":
        fun(a=2,b=4)
  • 相关阅读:
    使用Dorado框架开发必备参考
    Dorado重用最佳实践
    css布局_web
    dorado学习笔记(二)
    Oracle归档日志删除
    给大家拜年啦!
    悟透JavaScript
    BCM57781网卡驱动下载地址
    win7安装jdk完后配置
    win7删除SVN保存的本地密码
  • 原文地址:https://www.cnblogs.com/yan-2010/p/14814982.html
Copyright © 2011-2022 走看看