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)
  • 相关阅读:
    python——(os, shutil)
    python-(subprocess, commands)
    PHP设计模式二:单例模式
    PHP设计模式一:工厂方法设计模式
    PHP垃圾回收机制
    PHP异常处理机制
    超文本传送协议HTTP
    IP地址
    Linux系统网络基本配置
    Linux系统LVM基本使用
  • 原文地址:https://www.cnblogs.com/yan-2010/p/14814982.html
Copyright © 2011-2022 走看看