• 关于python装饰器的总结


    # 因为wrap函数的参数只能是一个函数
    # 而wrapper的参数又只能是传递给函数的参数列表
    # 如果想要再次处理被装饰函数的返回结果,只能在最外层的函数参数中指定
    # 这里就是在deco函数的参数中
    # 如果只用两层嵌套就无法做到
    def deco(render=None):
        def wrap(func):
            def wrapper(*args,**kwargs):
                result = func(*args,**kwargs) ###
                return render(result)  ###
            return wrapper
        return wrap
    
    
    my_render = lambda x: str(x) + ' --my_render'
    
    @deco(render=my_render)
    def test():
        return "this is test!"
    
    print test()

    这里正是因为想让result被再次处理,所以要在最外层函数的参数中制定调用的处理函数,就是my_render。

  • 相关阅读:
    用遗传算法解决子集和问题
    XML映射配置文件
    generator插件配置方式使用
    声明
    spring IOC简单分析
    模板模式
    原型模式
    委派模式,策略模式
    单例模式2
    单例模式
  • 原文地址:https://www.cnblogs.com/huazi/p/2489881.html
Copyright © 2020-2023  润新知