1、作用:基于不改变原有函数(或类)的前提下,新增函数功能

2、特点:入参和返回值均为函数

3、实例:记录函数运行时间

# noinspection PyUnresolvedReferences
import time

#装饰函数:计算函数运行时间
#注意wrapper的参数要写入f()的入参,f()的入参要写实际功能函数的入参
#返回函数wrapper后不要加()
def time_rec(f):
    def wrapper(a,b):
        start_time = time.time()
        f(a,b)
        end_time = time.time()
        run_time = end_time - start_time
        print ('函数运行时间为%d'%run_time)
    return wrapper

#功能函数:加法
#add_num是装饰函数time_rec的入参
@time_rec
def add_num(a,b):
    time.sleep(1)
    print ('%d与%d之和为:%d'%(a,b,(a+b)))

#功能函数:减法
#sub_num是装饰函数time_rec的入参
@time_rec
def sub_num(a,b):
    print ('%d与%d之差为:%d'%(a,b,(a-b)))

if __name__ == '__main__':
    add_num(3,2)
    sub_num(3,2)
  
posted on 2020-11-10 13:37  12345zjl  阅读(69)  评论(0)    收藏  举报