python044魔术方法:简单定制例子的疑惑
#开始计时def start(self):
self.begin = t.localtime()
self.prompt = "提示,请先调用stop()停止计时!"
print("计时开始……")
#停止计时
def stop(self):
if not self.begin:
print("提示:请先调用start()进行计时!")
else:
self.end = t.localtime()
self._calc()
print("计时结束!")
1、为什么start()中的self.prompt = "提示,请先调用stop()停止计时!"显示不用判断是否使用过stop()?
2、我以为在t1.start()后会直接跳出self.prompt = "提示,请先调用stop()停止计时!"
3、如果我只输入了
t1 = Mytime()
t1.start()
_calc() 会不会运行一遍
1. 因为用户不可能在设置 self.prompt 之前就调用了 stop()
2. 这里只是设置,没有打印
3. 不会 第一个问题其实就是一个逻辑
如果你用过了stop,相当于程序已经跑完一次,都归零了,这时候start没什么说的了
而如果你已经start之后,再次调用start,就可以提示你你已经开始计时了,请先stop
第二个问题
你执行的start并没有输出self.prompt的内容,他这里只是改变了实例对象属性值而已
第三个问题
_calc() 是只有在你start之后运行stop才会执行的
页:
[1]