Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
创建类stopwatchpython。Don';我不明白它为什么起作用?_Python_Windows - Fatal编程技术网

创建类stopwatchpython。Don';我不明白它为什么起作用?

创建类stopwatchpython。Don';我不明白它为什么起作用?,python,windows,Python,Windows,如果删除 a=时间。时钟() 部分。有了它,它会产生正确的结果,但我不确定它为什么会这样做? 我意识到可能有更好的方法可以做到这一点,但我是Python的初学者,所以我非常感谢您的帮助。谢谢我使用的是Windows系统。你不会碰巧是一个红宝石爱好者吧x.start可以在Ruby中调用方法,但不能在Python中调用。您需要x.start()-注意括号。您的x.stop和x.reset也有同样的问题 a=time.clock()很有帮助,因为time.clock()有时会(取决于平台)返回自第一次

如果删除 a=时间。时钟() 部分。有了它,它会产生正确的结果,但我不确定它为什么会这样做?
我意识到可能有更好的方法可以做到这一点,但我是Python的初学者,所以我非常感谢您的帮助。谢谢我使用的是Windows系统。

你不会碰巧是一个红宝石爱好者吧
x.start
可以在Ruby中调用方法,但不能在Python中调用。您需要
x.start()
-注意括号。您的
x.stop
x.reset
也有同样的问题


a=time.clock()
很有帮助,因为
time.clock()
有时会(取决于平台)返回自第一次调用
clock()
以来的时间,而不是从进程开始。对
a
的实际分配不正确;不做任何事情,它只是为
时钟创建一个起点,以便以后参考。不要依赖于此-Python文档状态为“从进程开始或从第一次调用clock()开始返回CPU时间或实时时间”“

您不会碰巧是一个rubyist,是吗
x.start
可以在Ruby中调用方法,但不能在Python中调用。您需要
x.start()
-注意括号。您的
x.stop
x.reset
也有同样的问题


a=time.clock()
很有帮助,因为
time.clock()
有时会(取决于平台)返回自第一次调用
clock()
以来的时间,而不是从进程开始。对
a
的实际分配不正确;不做任何事情,它只是为
时钟创建一个起点,以便以后参考。不要依赖于此-Python文档状态为“返回自进程开始或第一次调用clock()以来的CPU时间或实时时间”

在任何平台上都不会返回自上次调用
clock()
以来的时间。在Windows上,它返回自第一次调用
clock()
以来的时间。这就是它在这里起作用的原因。看,太谢谢你们了!现在可以了!同时感谢您及时的回复!我注意到结果中有一些变化,根据阅读,这似乎是正常的,我认为许多人说平均返回的时间才是正确的选择。我会多读一些书,但如果你能给我指出正确的方向,我将不胜感激!哦,我不是一个红宝石爱好者,只是我在那里不称职,哈哈!由于CPU操作的不规则性,会出现自然变化(在某些情况下,由于热量的原因,缓存的行为可能会有所不同,等等)。没有真正的方法可以对一次运行进行平均-相反,您可以多次运行函数/程序,并对每次运行的
clock()
时间进行平均。更好的方法是:多次运行几组,对每组进行平均,然后返回这些平均值中的最小值;这就是标准Python模块所做的。引用:“在典型情况下,最低值给出了机器运行给定代码段的速度下限;结果向量中较高的值通常不是由Python速度的变化引起的,而是由其他进程干扰计时精度引起的这个结果可能是你唯一感兴趣的数字。”它不会返回自上次在任何平台上调用
clock()
以来的时间。在Windows上,它返回自第一次调用
clock()
以来的时间。这就是它在这里起作用的原因。看,太谢谢你们了!现在可以了!同时感谢您及时的回复!我注意到结果中有一些变化,根据阅读,这似乎是正常的,我认为许多人说平均返回的时间才是正确的选择。我会多读一些书,但如果你能给我指出正确的方向,我将不胜感激!哦,我不是一个红宝石爱好者,只是我在那里不称职,哈哈!由于CPU操作的不规则性,会出现自然变化(在某些情况下,由于热量的原因,缓存的行为可能会有所不同,等等)。没有真正的方法可以对一次运行进行平均-相反,您可以多次运行函数/程序,并对每次运行的
clock()
时间进行平均。更好的方法是:多次运行几组,对每组进行平均,然后返回这些平均值中的最小值;这就是标准Python模块所做的。引用:“在典型情况下,最低值给出了机器运行给定代码段的速度下限;结果向量中较高的值通常不是由Python速度的变化引起的,而是由其他进程干扰计时精度引起的结果可能是你唯一感兴趣的数字。”
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()