您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页带函数参数的装饰器(复杂装饰器)的例子

带函数参数的装饰器(复杂装饰器)的例子

来源:华佗小知识

带函数参数的装饰器的作用就是,不用写装饰器了,写函数就行了,写函数就相当于写装饰器了。在第15行,对Index()函数进行

制作的Index()函数。现在,这一行(15)是这样执行的:

1.执行Filter(before_func,after_func),把Filter()函数读到内存,函数执行就会后返回值,不写return就默认返回None.现在写的是return outer(第13行),这一步跟装饰器没关系。

3.新的Index=outer()的返回值wrapper, 新Index=wrapper,它里面有传进来的两个新函数before_func()和after_func()和旧的Index()函数。

 1 def Login(request,kargs):
 2     print('此处添加新功能1,比如登陆权限检查功能。')
 3     return 33
 4 def ErrorHandle(request,kargs):
 5     print('此处添加新功能2,比如登录报错功能。')
 6 def Filter(before_func, after_func):
 7     def outer(main_func):
 8         def wrapper(request, kargs):
 9             before_result = before_func(request, kargs)
10             main_result = main_func(request, kargs)
11             after_result = after_func(request, kargs)
12         return wrapper
13     return outer
14 
15 @Filter(Login, ErrorHandle)
16 def Index(request, kargs):
17     print('此处是原来的未经装饰过的函数。')
18     return 'home page'
19 Index('req', 'alex')

 

 

转载于:https://www.cnblogs.com/yibeimingyue/p/9323740.html

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务