【python】创建一个自己的类计时器

前言:
学习了python的类之后收获颇多,于是想利用类创建一个简单的计时器

第一代版本

首先要明确自己的timer想要实现的功能…先列一些简单的吧
比如:开始计时的功能,停止计时的功能,有一些简单的提示语…
还有一个问题,叫什么名字呢…
既然我们同属地球人,那就叫EarthTimer吧,额,就叫ETimer算了

import time as t


class ETimer:
    """创建一个计时器的类"""

    # 初始化一些可能会用到的变量
    def __init__(self):
        self.begin = 0
        self.end = 0
        self.lasted = 0

    # 开始计时
    def start(self):
        self.begin = t.time()
        print("计时开始...")

    # 停止计时,并显示持续时间
    def stop(self):
        self.end = t.time()
        print("计时结束...")
        self.lasted = self.end - self.begin
        # 报出持续时间
        print(f'持续了{self.lasted}秒')

好了,以上就是最简单的雏形,能实现简单的计时,报时功能,采用实例化类对象的方法调用
在这里插入图片描述
但是简单的缺点也很明显,如果改变方法的调用顺序,程序就会报错,因此,应该有相应的处理措施

第二代版本

要应对不同的情况,if语句能充分发挥作用

import time as t


class ETimer:
    """创建一个计时器的类"""

    # 初始化一些可能会用到的变量
    def __init__(self):
        self.begin = 0
        self.end = 0
        self.lasted = 0
        print("请调用start开始计时...")

    # 开始计时
    def start(self):
        # 已调用过start方法
        if self.begin:
            print("请调用stop停止计时...")

        else:
            self.begin = t.time()
            print("计时开始...")

    # 停止计时,并显示持续时间
    def stop(self):
        # 如果未先调用start方法
        if self.begin == 0:
            print("请调用start方法开始计时...")

        else:
            self.end = t.time()
            print("计时结束...")
            self.lasted = self.end - self.begin
            # 报出持续时间
            print(f'持续了{self.lasted}秒')

        # 初始化变量
        self.begin = 0
        self.end = 0  

这样的话,提示就变得更加人性化了,也能防止用户在一定程度的操作失误的情况下,防止程序崩溃
在这里插入图片描述
但是,对于一个正常的计时器,要实现的功能远不止于此,我不能因为自己技术的贫困而放弃对美好事物的追求。也许在计时过程中还会用到多次调用,以及调用以前的记录,或者将几次记录相加,应该在代码中加入相应的功能

魔法方法

在学习过程中,我了解到python在使用运算符还有调用某个变量时,会调用其对应的类的某种方法来实现前面的功能。
比如:python遇到 “+” 运算符时,会调用内部的__add__()方法;调用变量时,会调用内部的__repr__()方法;调用print函数时,python会调用内部的__str__()方法…这些都是python的魔法方法

我们可以重写这些魔法方法,使其在我们创建的类中有额外的功效,也就是定制我们自己的类方法

重写__rper__()方法,使我们在交互式python解释器下通过直接输入对象就可以调出相应值。(注:rper()方法的返回值必须是字符串,而且必须有返回值,如果用print()方法代替输出,就会出现无限套娃,str()方法也是一样)

    # 重写__rper__方法
    def __repr__(self):
        if self.lasted == 0:
            return "没有该条记录..."
        else:
            return f"该条记录为{self.lasted}秒"

通过重写__add__方法,使得在调用两次计时的记录并把他们相加时,能得到我们想想要的结果

    # 重写__add__方法
    def __add__(self, other):
        if self.lasted * other.lasted == 0:
            return "缺少该条记录..."
        else:
            return f"总共为 {self.lasted + other.lasted} 秒"

现在,只要通过实例化方法创建对象,我们的计时器能实现相当大部分的功能在这里插入图片描述

在这里插入图片描述
通过类似的方式,也可以向计时器添加更多的功能…

反思与感悟

在python中,一切皆对象。数字、字符串、元组、列表、字典、函数、方法、类、模块等等都是对象,包括你的代码。

了解python的一些魔法方法,或者重写它们,会达到意想不到的效果,比如将加减法互换…
在学习python的过程中总能发现一些新乐趣,这些东西总能激起我学习的动力
参考资料

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 你可以使用Python的内置模块time来创建一个计时器。具体实现方法如下: ```python import time # 获取当前时间,即计时器开始时间 start_time = time.time() # 要计时的代码 # ... # 获取当前时间,即计时器结束时间 end_time = time.time() # 计算代码运行时间 run_time = end_time - start_time print("代码运行时间为:", run_time, "秒") ``` 以上代码中,通过time.time()获取当前时间,即计时器开始时间和结束时间,然后计算两个时间之差,即为代码运行时间。最后通过print语句输出运行时间。 ### 回答2: 在Python中,可以使用time模块来创建一个计时器。具体的步骤如下: 1. 首先,需要导入time模块:import time。 2. 在程序的开始位置,使用time.time()函数获取当前时间戳,将其赋值给一个变量start_time表示计时器的开始时间。 3. 在计时器的结束位置,再次使用time.time()函数获取当前时间戳,将其赋值给一个变量end_time表示计时器的结束时间。 4. 计时器的运行时间可以通过end_time - start_time来计算出来。这个时间差是以秒为单位的。 5. 如果希望计时结果以其他单位表示(例如毫秒、微秒),可以将计算得到的时间差乘以相应的转换因子。 示例代码如下: ``` import time # 计时器开始 start_time = time.time() # 这里是需要计时的代码 # ... # 计时器结束 end_time = time.time() # 计算运行时间 running_time = end_time - start_time # 打印结果 print("运行时间:", running_time, "秒") ``` 上述代码中,通过调用time.time()函数来获取时间戳,然后通过简单的数学运算得到程序的运行时间。最后将运行时间打印出来。 需要注意的是,上述方法只适用于评估代码运行时间。如果需要更精确地测量时间,可以使用timeit模块。 ### 回答3: 在Python中,我们可以使用time模块来创建一个简单的计时器。 首先,我们需要导入time模块,然后使用time.time()函数获取当前时间的时间戳。这个时间戳是一个浮点数,表示从1970年1月1日午夜开始的秒数。我们可以将这个时间戳保存在一个变量中,作为计时器的起始时间。 接下来,我们可以使用time模块的time()函数获取当前时间的时间戳,并将其减去起始时间的时间戳,得到经过的秒数。我们可以将这个差值保存在另一个变量中,作为经过的时间。 最后,我们可以使用print函数将经过的时间输出到控制台。 下面是一个简单的示例代码: ```python import time start_time = time.time() # 获取起始时间的时间戳 # 模拟一些耗时的操作 time.sleep(5) end_time = time.time() # 获取结束时间的时间戳 elapsed_time = end_time - start_time # 计算经过的时间 print("经过了", elapsed_time, "秒") ``` 运行这段代码,你会看到输出的结果是经过了5.0秒(根据sleep函数的参数实际会有一些微小的差异)。 这就是用Python创建一个简单的计时器的方法。你可以根据需要进行调整和扩展,例如,可以将计时器封装成一个函数,以便在需要的时候进行调用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值