import time #useful for measuring code execution
class StopWatch:
def __init__(self, startTime = 0, endTime = 0, elapsedTime = 0):
self.__startTime = startTime
self.__endTime = endTime
self.__elapsedTime = elapsedTime
def start(self):
self.__startTime = time.clock()
def stop(self):
return self.getElapsedTime()
def reset(self):
self.__startTime = 0
self.__elapsedTime = 0
def getstarttime(self):
return self.__startTime
def getendtime(self):
return self.__endTime
def getElapsedTime(self):
elapsedTime = self.__elapsedTime
elapsedTime +=((time.clock() - self.__startTime) * 1000)
return elapsedTime
def main():
x = StopWatch()
x.start
a = time.clock() #code only works with this line of code in place (I don't understand why?)
sum = 0
for i in range(1 , 10000000):
sum += i
x.stop
print("Elapsed execution time is", x.getElapsedTime())
print(sum)
x.reset
main()
如果我删除 a=时间时钟() 部分。有了它,它产生了正确的结果,但我真的不知道它为什么会这样做? 我意识到可能有更好的方法来做到这一点,但我有点像是Python的初学者,所以我很感谢你的帮助。谢谢!我使用的是Windows系统。在
你不会碰巧是个鲁比主义者吧?
x.start
可以在Ruby中调用方法,但不能在Python中调用方法。您需要x.start()
-注意括号。您对x.stop
和x.reset
也有相同的问题。在a = time.clock()
是有帮助的,因为time.clock()
有时会(依赖于平台)返回自第一次调用clock()
以来的时间,而不是从process start返回。对a
的实际赋值不是做任何事情,它只是为clock
创建一个起点,以便以后引用。不要依赖这一点——Python文档的状态是“返回自进程开始后的CPU时间或实时时间,或者自第一次调用clock()以来的”相关问题 更多 >
编程相关推荐