python学习笔记(二十七)-- 装饰器

装饰器:不改变原来函数的代码和调用方式,给函数添加新功能。
装饰器,本身也是一个函数
添加装饰器格式 @函数名
加上装饰器后,就可以扩展没有的功能,比如说打印函数名、运行时间等,就不用写重复的代码
#给函数加上打印函数名的功能
def func_name(func):
    def f(*args,**kwargs):
        print("[DEBUG]:Enter the function %s()"%(func.__name__))
        func(*args,**kwargs)
    return f

# 给函数打印运行时间
def timer(func):
    import time
    def f(*args,**kwargs):
        start_time = time.time()
        func(*args,**kwargs)
        run_time = time.time() - start_time
        print("函数 %s() 运行时间是 %s"%(func.__name__,run_time))
    return f

@timer
def say(name,count):
    print('%s hello! %s'%(name,count))

say('nana',5)

猜你喜欢

转载自www.cnblogs.com/yanyan-/p/11082185.html