您的位置:首页 > 编程语言 > Python开发

关于python装饰器的总结

2012-05-08 12:23 387 查看
# 因为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。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: