我正在玩類,並創建了一個到我的腳本的部分時間。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