使用 timeit 为函数的单次执行计时

Time a single execution of a function using timeit

打印函数被调用了很多times.I想计算函数的time.I写代码,

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 is neither a string nor callable error happens.How 我可以构建我理想的系统吗?我的代码有什么问题?

你必须

  1. 将字符串传递给 stmt 字段,并且
  2. 传递 globals 字典以便 timeit 找出 test 函数的来源

>>> timeit.timeit("test()", number=1, globals=globals())
HiTom
3.45029984600842e-05