使用timeit单次执行函数的时间

时间:2018-05-10 07:28:41

标签: python timeit

多次调用print函数。我想计算函数的时间。我写了代码,

import timeit

class UserClass:
    def callname(self):
        print("HiTom")

if __name__ == '__main__':
    def test():
        user = UserClass()
        user.callname()

    test()
    mtime = timeit.timeit(lambda: test())
    print(mtime)

当我运行代码时," Hi Tom"被称为很多次。 我真的不明白为什么会发生这样的事情。

我重写了

mtime = timeit.timeit(test(), number=1)

但是ValueError:stmt既不是字符串也不是可调用错误。我怎样才能建立理想的系统?我的代码有什么问题?

1 个答案:

答案 0 :(得分:0)

你必须

  1. 将字符串传递给stmt字段和
  2. 传递globals字典,以便timeit找出test函数的来源
  3. >>> timeit.timeit("test()", number=1, globals=globals())
    HiTom
    3.45029984600842e-05