python装饰器,计算程序运行时间

本文通过Python中的装饰器和time模块,展示如何测量test1函数的执行时间,以及在for循环中计算1到1000000的和的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# 按数字编号顺序看注释。
import time  # 1.导入time模块


def calcu_time(f):  # 2.定义函数和形参。
                    # 5.将test1作为实参传递给calcu_time函数的f形参。

    def test_in():           # 6.定义函数。10.执行函数。

        start = time.time()  # 11.调用time模块的time()方法,把时间赋给start,记录开始时间。

        f()                  # 12.调用函数,此时代表调用test1函数,(因为装饰器把test1函数作为实参传递给了形参f。)
                             # 16.返回到函数调用f()处,继续往下执行代码。

        end = time.time()    # 17.调用time模块的time()方法,把时间赋给start,记录结束时间

        print(f'时间差为{end-start}')  # 18.打印输出时间差

    return test_in  # 7.将test_in作为值,返回到函数调用处test1位置,

@calcu_time   # 3.装饰器,等同于:test1 = calcu_time(test1),定义test1实参,并寻找。
              # 13.装饰器接收test1函数调用指令,准备执行test1函数内部命令。

def test1():  # 4.定义函数,装饰器找到test1,返回到calcu_time()函数定义处。
              # 8.将test_in作为值给test1。

    sum_num = 0  # 14.赋值变量为0,并计算和值。
    for num in range(1, 1000001):  # 15.循环求和,并打印输出,如下代码
        sum_num = sum_num + num
        print(f'和为{sum_num}')


test1()  # 9.调用函数,此时代表调用test_in函数。
         # 19.返回到函数调用处,程序结束。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值