装饰器:不改变原来函数的代码和调用方式,给函数添加新功能。
装饰器,本身也是一个函数
添加装饰器格式 @函数名
加上装饰器后,就可以扩展没有的功能,比如说打印函数名、运行时间等,就不用写重复的代码
#给函数加上打印函数名的功能 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)