Python 装饰器示例,计算函数或方法执行时间

# 定义一个计算执行时间的函数作装饰器,传入参数为装饰的函数或方法
def print_execute_time(func):
    from time import time

    # 定义嵌套函数,用来打印出装饰的函数的执行时间
    def wrapper(*args, **kwargs):
        # 定义开始时间和结束时间,将func夹在中间执行,取得其返回值
        start = time()
        func_return = func(*args, **kwargs)
        end = time()
        # 打印方法名称和其执行时间
        print(f'{func.__name__}() execute time: {end - start}s')
        # 返回func的返回值
        return func_return

    # 返回嵌套的函数
    return wrapper


# 定义一个随机数求和的方法,传入参数是随机数的个数,加上刚才定义的装饰器
@print_execute_time
def cal_sum(size):
    from random import random
    li = [random() for i in range(size)]
    return sum(li)


if __name__ == '__main__':
    # 打印一下1000000个的和,同时会显示执行时间
    print(cal_sum(1000000))

输出结果:

cal_sum() execute time: 0.19301128387451172s
500049.06074024545

猜你喜欢

转载自www.cnblogs.com/milesma/p/12172982.html