Python装饰器示例
简单装饰器实现:
import time #简单装饰器 def show_time(f): #嵌套函数 def inner(): begin = time.time() f() end = time.time() print('spend %s'%(end-begin)) return inner @show_time #foo=show_time(foo) def foo(): print('foo...') time.sleep(1) foo()
不定长参数装饰器:
#不定长参数,功能函数加参数 def show_time(f): #嵌套函数 def inner(*a,**b): begin = time.time() f(*a,**b) end = time.time() print('spend %s'%(end-begin)) return inner @show_time #foo=show_time(foo) def foo(*a,**b): sums=0 for i in a: sums+=i print(sums) time.sleep(1) foo(1,2,3,4,5)
装饰器函数加参数:
#装饰器函数加参数 def logger(flag): def show_time(f): #嵌套函数 def inner(*a,**b): begin = time.time() f(*a,**b) end = time.time() print('spend %s'%(end-begin)) #判断flag传参,之后所做的事情 if flag == 'true': print('哈哈哈哈') return inner return show_time #传参为true,则执行logger的内容 @logger('tru1e') #@show_time def foo(*a,**b): sums=0 for i in a: sums+=i print(sums) time.sleep(1) foo(1,2,3,4,5)
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
· Sdcb Chats 技术博客:数据库 ID 选型的曲折之路 - 从 Guid 到自增 ID,再到
· 语音处理 开源项目 EchoSharp
· 《HelloGitHub》第 106 期
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 使用 Dify + LLM 构建精确任务处理应用