zoukankan      html  css  js  c++  java
  • 06-python中的装饰器

    java类中, 有一系列的装饰器, 尤其对文件的操作, python的装饰器比较简单, 直接上代码

    #!/usr/bin/env python3
    #coding:utf-8
    '''
    python的装饰器
    
    包装原函数, 添加   @+装饰器函数名   注解
    
    实质是把 Fun1 重新赋值为 wrapper
    
    函数只有名代表这个函数, 带括号相当于执行这个函数
    
    '''
    
    # 装饰器
    def outer(fun):
        def wrapper(arg):
            print('outerrerere')
            result = fun(arg)
            print('enddddd...')
            return result
    
        return wrapper
    
    
    @outer
    # @outer = outer(Fun1)
    def Fun1(arg):
        print('func1', arg)
        return arg
    
    @outer
    def Fun2(arg):
        print('func2', arg)
        return arg
    
    
    rrr = Fun1('alex')
    print(rrr,'123')
    Fun2('alex')

    然后, 可能会有带有参数的

    #!/usr/bin/env python3
    #coding:utf-8
    '''
    带参数的装饰器, 传入函数的
    
    '''
    
    def Fileter(before_func, after_func):
        def outer(main_func):
            def wrapper(request, args):
                before_result = before_func(request, args)
                if (before_result != None):
                    return before_result
    
                main_result = main_func(request, args)
                if (main_result != None):
                    return main_result
    
                after_result = after_func(request, args)
                if (after_result != None):
                    return after_func
    
            return wrapper
        return outer
    
    
    @Filter(AccountFilter.Before, AccountFilter.Afeter)
    def List(request, args):
        pass
  • 相关阅读:
    Jmeter之检查点
    Jmeter之集合点
    Jmeter之参数化
    Jmeter组件认识
    Jmeter目录认识
    sts的web工程创建
    Jmeter的BeanShell脚本开发
    Jmeter插件开发
    Appium配置app老是反复安装问题的处理
    eclipse通过git代码的下载和上传
  • 原文地址:https://www.cnblogs.com/wenbronk/p/7142557.html
Copyright © 2011-2022 走看看