我正在玩类,并创建了一个到我的脚本的部分时间。Python类:更新调用时的实例值
import datetime
class Timer(object):
def __init__(self, *args, **kwargs):
self.StartTime = datetime.datetime.now()
self.TimeElapsed = self.timedif(datetime.datetime.now(), self.StartTime)
def hms_string(self, sec_elapsed):
h = int(sec_elapsed/(60 * 60))
m = int((sec_elapsed % (60 * 60))/60)
s = sec_elapsed % 60
return "{}:{:>02}:{:>05.2f}".format(h, m, s)
def timedif(self, end_datetime, start_datetime):
seconds_elapsed = (end_datetime - start_datetime).total_seconds()
return self.hms_string(seconds_elapsed)
我想它做的是打印的,每当Timer.TimeElapsed
被实例化以来StartTime
经过的时间量。当然,它的作用是打印00:00:00
。
如何修改我的班级,以便在拨打Timer.TimeElapsed
时使用实际当前时间与StartTime
进行比较,而不是班级被调用的时间?
为什么不制作一个'time_elapsed'方法(注意:https://www.python.org/dev/peps/pep-0008/),只要它被调用就计算差异? – jonrsharpe
@jonrsharpe刚刚尝试过;似乎也在做同样的事情。 – crld
这似乎不大可能,但没有[mcve],很难说你做错了什么。 – jonrsharpe