请提供一份Python代码，该代码设计一个计时器类，具有开始、暂停、重置功能。要求代码中包含注释解释每个函数的用途。代码段落缩进合理。以markdown形式输出。
user
```markdown
```python
import time

class Timer:
    """
    计时器类，包含开始、暂停与重置功能。
    """

    def __init__(self):
        """
        初始化计时器，设置用于保存开始时间、结束时间以及计时器暂停时的时间总量。
        """
        self.start_time = None
        self.end_time = None
        self.paused_duration = 0

    def start(self):
        """
        开始计时功能，如果计时器已被启动，则忽略此操作。
        """
        if self.start_time is None:
            self.start_time = time.time()
            self.paused_duration = 0

    def pause(self):
        """
        暂停计时器，如果计时器已经被暂停或尚未开始，则不执行任何操作。
        """
        if self.start_time is not None and self.end_time is None:
            self.end_time = time.time()

    def resume(self):
        """
        恢复暂定的计时器。如果计时器没有被暂停，那么忽略此操作。
        """
        if self.start_time is not None and self.end_time is not None:
            self.paused_duration += self.end_time - self.start_time
            self.start_time = time.time()
            self.end_time = None

    def reset(self):
        """
        重置计时器，所有的时间记录将被清除。
        """
        self.start_time = None
        self.end_time = None
        self.paused_duration = 0

    def elapsed(self):
        """
        获取经过的时间，如果计时器仍处于运行状态，则包括运行状态下的时间。
        """
        if self.start_time is not None:
            if self.end_time is not None:
                return self.end_time - self.start_time - self.paused_duration
            else:
                return time.time() - self.start_time - self.paused_duration
        else:
            return 0

# 示例用法
timer = Timer()
timer.start()
time.sleep(2)  # 设定延迟2秒模拟一段计时
timer.pause()
time.sleep(1)  # 暂停1秒后继续，理论上这段时间不应计时
timer.resume()
time.sleep(3)  # 再次设定延迟3秒模拟计时
print(f"经过的时间: {timer.elapsed()} 秒")
```
```
assistant