Timer 计时器

  • 写一个计时类
import time

class Timer:
    def __init__(self):
        self.start_time = None
        self.end_time = None
        self.elapsed_time = None

    # 上下文管理器方法,支持 with 语句
    def __enter__(self):
        self.start_time = time.time()
        return self

    def __exit__(self, exc_type, exc_val, exc_tb):
        self.end_time = time.time()
        self.elapsed_time = self.end_time - self.start_time
        print(f"Elapsed time: {self.elapsed_time:.6f} seconds")

    # 手动计时方法
    def start(self):
        self.start_time = time.time()

    def stop(self):
        self.end_time = time.time()
        self.elapsed_time = self.end_time - self.start_time
        return self.elapsed_time

    # 装饰器方法,用来计时任意函数
    @staticmethod
    def timer_decorator(func):
        def wrapper(*args, **kwargs):
            timer = Timer()  # 创建 Timer 实例
            timer.start()
            result = func(*args, **kwargs)
            timer.stop()
            print(f"Function '{func.__name__}' executed in {timer.elapsed_time:.6f} seconds")
            return result
        return wrapper

# 使用静态方法作为装饰器
@Timer.timer_decorator 
def example_function(n):
    return sum([i**2 for i in range(n)])

# 调用函数
result = example_function(1000000)
  • 结果:
Function 'example_function' executed in 0.262828 seconds
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值