装饰器初成
装饰器的初成:
计算代码执行的时间
import time #导入time模块 time.time() #获取当前时间 time.sleep() #让程序再执行到此位置时停一会儿
import time
def func():
time.sleep(0.01)
print('大家好!')
def timmer(f): #装饰器函数
def inner():
strat = time.time()
f() #被装饰函数
end = time.time()
print(end-start)
return inner
func = timmer(func)
func()
通过闭包函数返回内部函数名,再外部接收
装饰器的作用:
用来实现,不想修改函数的调用方式,但是还想再原来的函数前后增加功能
原则:开放封闭原则
开放:对扩展是开放的
封闭:对修改是封闭的
语法糖:
用@装饰器函数名(@timmer)来代替func = timmer(func)
位置:紧贴着被装饰的函数
装饰器的本质:闭包函数
装饰器的最终形成和固定格式:
装饰器的固定写法
def wrapper(func): #装饰器函数,func是被装饰的函数
def inner(*args,**kwargs):
'''在装饰之前要完成的操作'''
ret = func(*args,**kwargs) #被装饰是的函数
'''在装饰之后要完成的操作'''
return ret
return inner
@wrapper #语法糖 相当于 qqxing = wrapper(qqxing)
def qqxing(): #被装饰的函数
print(123)

浙公网安备 33010602011771号