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方法

posted @   aleiyoy  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示