1 |
一:装饰本质就是函数,功能是为其他函数添加附加功能
二:原则:
1)不修改被修饰函数的源代码
2)不修改被修饰函数的调用方式
三:装饰器的实现
1)装饰器=高阶函数+函数嵌套+闭包
示例:将下列函数增加一个执行时间的功能
1 2 3 4 5 6 7 8 | import time def cal(l): res = 0 for i in l: res + = i return res ret = cal( range ( 20 )) print (ret) |
此时为了保证装饰器的原则,我们需要另外写一个执行时间的函数
1 2 3 4 5 6 7 8 9 | 给函数添加装饰器,实现打印出运行时间的功能 def timer(func): def wapper( * args, * kwargs): starttime = time.time() res = func( * args, * * kwargs) stoptime = time.time() print ( "函数的运行时间为:%s" % (stoptime - starttime)) return res return wapper |
装饰器的用法:在第一个函数中声明一下即可@timer
1 2 3 4 5 6 7 8 | @timer def cal(l): res = 0 for i in l: res + = i return res ret = cal( range ( 20 )) print (ret) |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步