装饰器初成

装饰器的初成:

计算代码执行的时间

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)
原文地址:https://www.cnblogs.com/twinkle-/p/10500664.html