天天看點

裝飾器

# 裝飾器的本質:  閉包函數
# 功能:  就是在不改變原函數調用方式的情況下,在這個函數前後加上擴張功能
def timemer(func):
    def inner(*args,**kwargs):
        '''添加函數調用之前的擴充代碼'''
        ret = func(*args,**kwargs)
        '''添加函數調用之後的擴充代碼'''
        return ret
    return inner
# 設計模式 原則 開放封閉原則
# 對擴充是開放的
# 對修改是封閉的

import time
def wrapper(func): #裝飾
    def inner(*args,**kwargs):
        start = time.time()
        ret = func(*args,**kwargs)
        end = time.time()
        print(end - start)
        return ret
    return inner
@wrapper    #文法糖
def lll():
    time.sleep(0.1)
    print('hello')

lll()
---
hello
0.10107421875           

繼續閱讀