python装饰器简单介绍
装饰器的作用:在函数执行前或执行后执行一段代码做一些通用处理
与直接在函数中写代码相比,优点在于可复用
调用形式为函数前@名字
@dec
def f(i):
装饰器运行逻辑:
系统看到装饰器,将不调用原函数
调用装饰器函数,将原函数作为参数传入
此函数返回一个函数,系统执行返回的函数(有意思的地方来了 返回的函数可以不包括原函数,也就是让调用原函数指令失效)
同时系统将把原函数的参数赋予给返回的函数
代码示例
原函数接受一个参数
装饰器接受原函数 返回一个函数
功能:返回的函数中输出接受到的参数 把其中一个参数再传给原函数执行
*a替代不定长普通参数 重点在* 可以是*b *c
a是一个元组 此示例中=(1, 2, 3)
**b替代不定长参数 重点在**
b是一个字典 此示例中={'a': 1, 'b': 2}
import time
def dec(f):
def wrap(*a,**b):
s=time.time()
for i in a:
print(i,end=' ')
for i in b:
print('{}:{}'.format(i,b[i]))
f(a[0])
print('spend:{}'.format(time.time()-s))
return wrap
@dec
def f(i):
print('函数参数{}'.format(i))
time.sleep(0.5)
f(1,2,3,a=1,b=2)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构