鱼C论坛

 找回密码
 立即注册
查看: 1413|回复: 4

[已解决]044课 计时器问题

[复制链接]
发表于 2018-2-25 17:19:45 | 显示全部楼层 |阅读模式

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

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

x
照着代码修改了一下,但是运行后结果总是为0秒,没找出原因,望大神指点

代码如下
import time as t

class Mytime:

    #定义————init————
    def __init__(self):
        self.prompt = "尚未启动计时器"
        self.default = t.perf_counter()
        self.begintime = 0
        self.endtime = 0

    #重写魔法方法—-str--,--repr--
    def __str__(self):
        return self.prompt
    __repr__= __str__

    #重写__add__
    def __add__(self,other):
        result = self.endtime - self.begintime
        prompt = "共运行了%0.2f秒" % result
        return prompt
        
        
    #开始计时
    def start(self):
        self.begintime = self.default
        self.prompt = "请停止计时器"
        print("开始计时")

    #停止计时
    def stop(self):
        self.endtime = self.default
        self._calc()
        self.prompt = "请先开始计时器"
        print("停止计时")

    #计算结果
    def _calc(self):
        self.result = self.endtime - self.begintime
        self.prompt = "共运行了%0.2f秒" % self.result
        print(self.prompt)
        
        self.begintime = 0
        self.endtime = 0

    #定义设置获取时间的默认方式
    def set_time(self):
        choice = int(input("是否要修改默认获取时间的方式,是:1,否:0"))
        if choice:
            default = t.process_time()
最佳答案
2018-2-25 20:02:16
你在__init__中self.default = t.perf_counter(),这时将时间值赋值给self.default,而start和stop中都是调用这个值,当然他们是相同的了,可以改为在start和stop中直接调用t.perf_counter()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-2-25 17:42:56 | 显示全部楼层
原因是self.default = t.perf_counter,然后在通过self.default()来调用函数,开始和结束计时时分别调用一次,取两次调用函数的差值.

但是我的结果出错的原因是不是因为只通过self.default = t.perf_counter()调用了一次函数,检查后发现计时时间和停止计时时间都为0s,原因是出在只调用第一次 t.perf_counter()函数时获得的初始时间为0s吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-25 20:02:16 | 显示全部楼层    本楼为最佳答案   
你在__init__中self.default = t.perf_counter(),这时将时间值赋值给self.default,而start和stop中都是调用这个值,当然他们是相同的了,可以改为在start和stop中直接调用t.perf_counter()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-26 11:37:09 | 显示全部楼层
初来乍到  几乎看不懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-2-26 16:55:26 | 显示全部楼层
sonylovely 发表于 2018-2-26 11:37
初来乍到  几乎看不懂

我也是刚学的小白一枚,互相支持
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-14 05:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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