import time

class Timer:
    def __init__(self):
        self.start_time = 0
        self.end_time = 0
    
    def start(self):
        """开始计时"""
        self.start_time = time.ticks_ms()
        return self
    
    def stop(self):
        """停止计时"""
        self.end_time = time.ticks_ms()
        return self
    
    def reset(self):
        """重置计时器"""
        self.start_time = 0
        self.end_time = 0
        return self
    
    def elapsed(self):
        """返回经过的毫秒数""" 
        _end = time.ticks_ms()
        _ms = time.ticks_diff(_end, self.start_time)
        return _ms
    
    def elapsed_ms(self):
        """返回经过的毫秒数""" 
        _end = time.ticks_ms()
        _ms = time.ticks_diff(_end, self.start_time)
        return _ms
    
    def __enter__(self):
        """支持with语句的上下文管理器"""
        return self.start()

    def __exit__(self, exc_type, exc_val, exc_tb):
        """支持with语句的上下文管理器"""
        self.stop()
        return False  # 不处理异常