python基础-装饰器
定义:
不改变原函数的代码增添新功能
闭包实现装饰器
def log_time(func):
def inner(*args, **kwargs):
beg = time.time()
ret = func(*args, **kwargs)
end = time.time()
print("总耗时:%d", end - beg)
return ret
return inner
@log # 把@log放到f()函数的定义处,相当于执行了语句:log = log(f)
def f():
pass
装饰器传参
def log(text):
def decorator(func):
@functools.wraps(func)
def wrapper(*args, **kw):
print('%s %s():' % (text, func.__name__))
return func(*args, **kw)
return wrapper
return decorator
@log('execute') # 相当于执行 now = log('execute')(now)
def now():
print('2015-3-25')
类实现装饰器
要实现init和call方法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix