鱼C论坛

 找回密码
 立即注册
查看: 908|回复: 2

[已解决]python044魔术方法:简单定制例子的疑惑

[复制链接]
发表于 2020-4-1 21:15:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#开始计时
    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() 会不会运行一遍
最佳答案
2020-4-1 21:31:35
第一个问题其实就是一个逻辑
如果你用过了stop,相当于程序已经跑完一次,都归零了,这时候start没什么说的了
而如果你已经start之后,再次调用start,就可以提示你你已经开始计时了,请先stop

第二个问题
你执行的start并没有输出self.prompt的内容,他这里只是改变了实例对象属性值而已

第三个问题
_calc() 是只有在你start之后运行stop才会执行的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-1 21:18:53 | 显示全部楼层
1. 因为用户不可能在设置 self.prompt 之前就调用了 stop()
2. 这里只是设置,没有打印
3. 不会
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-1 21:31:35 | 显示全部楼层    本楼为最佳答案   
第一个问题其实就是一个逻辑
如果你用过了stop,相当于程序已经跑完一次,都归零了,这时候start没什么说的了
而如果你已经start之后,再次调用start,就可以提示你你已经开始计时了,请先stop

第二个问题
你执行的start并没有输出self.prompt的内容,他这里只是改变了实例对象属性值而已

第三个问题
_calc() 是只有在你start之后运行stop才会执行的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-25 19:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表