python学习笔记分享(二十六)魔法方法(三)简单定制

IT Xiao Ang Zai 8月14号

现在,让我们进行继续今天的python学习:

版本:python3.64

编程软件:IDLE

 

一:简单要求

1.定制一个计时器的类。

2.start和stop方法代表启动计时和停止计时。

3.假设计时器t1,print(t1)和直接调用t1均显示结果。

4.当计时器未启动或已经停止计时,调用stop方法会给予温馨的提示。

5.两个计时器对象可以进行相加:t1+t2。

6.只能使用提供的有限资源完成。

 

二:需要下面的资源

1.使用time模块的localtime方法获取时间(有关time模块可参考:http://bbs.fishc.com/thread-51326-1-1.html)。

2.time.localtime返回struct_time的时间格式。

3.表现你的类:__str__()和__repr__()。

有关__str__()和__repr__()的区别大家可以参考如下:

https://blog.csdn.net/ITxiaoangzai/article/details/81568970

如下:

 

三:有了上面的知识,下面就定制这个类

import time as t

class MyTimer:
    # 开始计时
    def start(self):
        self.start = t.localtime()
        print("计时开始")
    # 停止计时
    def stop(self):
        self.stop = t.localtime()
        print("计时结束")
    """把框架弄好了以后,应该考虑怎样进行计算了,localtime()返回的是一个时间元组的结构,
    只需要前边6个元素,然后stop元素减去start元素,将差值存放在一个新的列表里"""
    # 停止计时
    def stop(self):
        self.stop = t.localtime()
        self._calc()
        print("计时结束")
    # 内部方法,计算运行时间
    def _calc(self):
        self.lasted = []
        self.prompt = "总共运行了"
        for index in range(6):
            self.lasted.append(self.stop[index] - self.start[index])
            self.prompt += str(self.lasted[index])
        print(self.prompt)

t1 = MyTimer()
t1.start()
t1.stop()

 

运行结果:

 

现在已经基本实现计时功能了,接下来需要完成"print(t1)和直接调用t1均显示结果",那就需要通过重写__str__()和__repr__()魔法方法来实现:
 

>>> def __str__(self):
	    return self.prompt
    __repr__ = __str__
>>> t1 = MyTimer()
>>> t1.start()
计时开始
>>> t1.stop()
计时结束
>>>t1
总共运行了0001-59-43

 

关于定制就先介绍到这里。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SAP顾问小昂

你的创作将会激励我,谢谢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值