0

我看过这篇关于使用定时器的帖子:

python中函数的准确计时

虽然它确实有时间进行已知操作......我需要一些稍微不同的东西。

我想:

  1. 执行一个函数+启动一个计时器
  2. 允许函数运行
  3. 如果函数完成 < X 毫秒:没有错误
  4. 如果函数完成 >=X 毫秒:错误“超出预期时间常数”
4

2 回答 2

2

您几乎可以将您的请求直接翻译成代码——只需添加一个“if”语句,然后抛出一个异常:

import timeit

def test(operation, setup, threshold):
    # Add any kind of timing setup here.
    t = timeit.Timer(operation, setup=setup)

    # Note: t.timeit(number=1) returns the time in seconds, not milliseconds
    if t.timeit() > threshold:
        raise Exception("ERROR: expected time constant exceeded")
于 2013-09-17T18:56:27.943 回答
0

要抛出错误,请使用:

raise Exception("my message")

(适用于 Python 2.7,我不确定 3)

所以在你的功能中:

if time >= expected: raise Exception("took too long!")

您还可以拥有自己的错误类:

class TooLongError(Exception):
    def __init__(self, value):
        self.value = value
    def __str__(self):
        return repr(self.value)

raise TooLongError("took too long")

产生:

TooLongError:花了太长时间

于 2013-09-17T18:55:41.693 回答