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)

 

posted @ 2017-07-27 14:17  eric_yi  阅读(112)  评论(0编辑  收藏  举报