Python中的装饰器


装饰器的本质:闭包函数
功能:在不改变原函数源代码以及调用方式的情况下,在这个函数的前后加上扩展功能
设计模式/原则:开放封闭原则
对扩展是开放的,对修改是封闭的

import time
def outer(func):
    def inner(*args,**kwargs):
        start_time = time.time()     #原函数调用之前的扩展代码
        ret = func(*args,**kwargs)   #返回原函数执行结果  #原函数调用
        stop_time = time.time()      #原函数调用之后的扩展代码
        print(stop_time - start_time)
        return ret                  #返回原函数执行结果
    return inner

@outer   #hahaha=outer(hahaha)
def hahaha(*args,**kwargs):
    time.sleep(0.01)

hahaha(1,2)
原文地址:https://www.cnblogs.com/eric_yi/p/7244597.html