1 装饰器程序初步
import time def func(): time.sleep(0.01) print("程序运行干活。。。") def timer(f): def inner(): time1 = time.time() f() time2 = time.time() print(time2-time1) return inner func = timer(func) func()
使用@符号
import time def timer(f): def inner(): time1 = time.time() f() time2 = time.time() print(time2-time1) return inner @timer def func(): time.sleep(0.01) print("程序运行干活。。。") func()
2 装饰器的定式:
def wrapper(func): # 装饰器函数, func是被装饰的函数 def inner(*args, **kwargs): ‘‘‘装饰器在装饰的函数运行前要执行的工作‘‘‘ ret = func(*args,**kwargs) ‘‘‘装饰器在装饰的函数运行后要执行的工作 ‘‘‘ return ret # 返回被装饰函数的执行结果 return inner @wrapper # 语法糖, qqqing = wrapper(qqqing) def qqqing(a,b): # 被装饰的函数 print(a,b) return max(a,b) # 正常调用函数 print(qqqing(2,3))
原文:https://www.cnblogs.com/yuming-python/p/9959102.html