python学习笔记分享(二十六)魔法方法(三)简单定制
2018-08-14 21:32
232 查看
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
如下:
三:有了上面的知识,下面就定制这个类
[code]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__()魔法方法来实现:
[code]>>> def __str__(self): return self.prompt __repr__ = __str__ >>> t1 = MyTimer() >>> t1.start() 计时开始 >>> t1.stop() 计时结束 >>>t1 总共运行了0001-59-43
关于定制就先介绍到这里。
阅读更多
相关文章推荐
- 鱼c笔记——Python魔法方法五:定制序列
- python学习笔记分享(二十八)定制序列
- python 魔法方法(学习过程的笔记)
- 零基础入门学习Python(25):魔法方法(5)定制序列和迭代器
- python基础教程_学习笔记11:魔法方法、属性和迭代器
- python学习笔记之七:魔法方法,属性
- <<Python基础教程>>学习笔记 | 第09章 | 魔法方法、属性和迭代器
- Python基础教程 第9章: 魔法方法、属性和迭代器 学习笔记
- 简明python教程学习笔记之九-str类方法简单介绍
- python基础教程_学习笔记11:魔法方法、属性和迭代器
- WPF - 学习笔记 简单的跨线程访问控件方法
- linux0.11学习笔记-技术铺垫-简单AB任务切换程序(3)-调试手段和方法
- python学习笔记(3)列表的常见方法
- 方法定制iOS学习笔记8-UITableView的定制
- linux0.11学习笔记-技术铺垫-简单AB任务切换程序(3)-调试手段和方法
- python函数缺省值与引用学习笔记分享
- 【Python学习笔记】list/dict对象复制的误区与正确方法
- iPhone开发学习笔记008——定制标题三种方法
- 学习笔记:JAVA RMI远程方法调用简单实例
- 黑马程序员之JS学习笔记:简单的LINQ的查询语法和方法语法