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)
  • 相关阅读:
    Linux关机命令详解
    这二个月都在失眠中。
    GMAIL绑定自己的域名MX解析出现错误
    又上火了。
    FTP命令
    怎样做反向域名解析?
    linux 一些常用到的命令。
    LINUX怎么换IP。
    关于 MOD 和 \ 选择
    WIN2000和WIN2003连备份机的疑问
  • 原文地址:https://www.cnblogs.com/yan-2010/p/14814982.html
Copyright © 2011-2022 走看看