|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
import time as ti
class Timer:
def __init__(self):
self.units = ['年', '月', '天', '小时', '分钟', '秒']
self.prompt = '未开始计时'
# self.begin = 0
# self.end = 0
self.lasted = []
def __str__(self):
return self.prompt
__repr__ = __str__
#两次时间相加
def __add__(self, other):
prompt = '共运行了'
result = []
for i in range(6):
result.append(self.lasted[i] + other.lasted[i])
if result[i]:
prompt += str(result[i])+self.units[i]
print(prompt)
#开始计时
def start(self):
self.begin = ti.localtime()
print('开始计时')
#结束计时
def stop(self):
self.end = ti.localtime()
self._calc()
print('计时结束')
#内部方法,计算运行时间
def _calc(self):
self.prompt = '总共运行了'
for index in range(6):
self.lasted.append(self.end[index]-self.begin[index])
if self.lasted[index]:
self.prompt += str(self.lasted[index]) + str(self.units[index])
print(self.prompt)
# 为下一轮计时初始化变量
#self.begin = 0
#self.end = 0
t1 = Timer()
t1.start()
t1.stop()
t2 = Timer()
t2.start()
t2.stop()
print(t1+t2)
各位大侠,我不明白为什么在_calc方法中要在把begin,end值初始化为0,还有开始时构造方法中为什么也一定要把begin和end初始化成0呢。 下面我调用类时查我看也没什么影响呀。
麻烦各位告知,还有我图片中是执行这个程序 最后打印了一个None我不明白那个是怎么打出来的
谢谢
确实没有什么影响,因为这个程序本来就没有影响
这样做是一个习惯而已,在特别大的类设计中会更安全和完备
|
|