如何记录按钮调用函数的执行时间?

时间:2019-01-26 20:38:00

标签: python python-3.x tkinter time

我正在创建一个应用程序(或程序),单击该按钮后将创建一个新窗口,并在列表框中显示一些数学结果。我希望它还显示数学的执行时间。我尝试使用time.time(),但是显然,我不能在函数中使用它。

我也尝试使用timeit,但不知道如何使用它。

我还能怎么做?

from tkinter import *

root = Tk()

def do_math():
    window = Toplevel(root)

    listbox = Listbox(window)

    for i in range(1, 10):
        math = i ** 2
        listbox.insert(END, str(math))

    time = Label(window, text="The math took {} seconds to execute.")

    time.pack()
    listbox.pack()


b1 = Button(root, text="Click me!", command=do_math).pack()

root.mainloop()

1 个答案:

答案 0 :(得分:0)

您不能使用time.time()函数,因为函数内部有一个名为time的变量,该变量导致弹出一些异常(UnboundLocalError),并将该变量重命名为其他变量< strong> OR 在函数顶部插入global time可以解决此问题。

from tkinter import *
from time import time

root = Tk()


def do_math():
    # global time
    window = Toplevel(root)

    listbox = Listbox(window)

    start = time()
    for i in range(1, 10000):
        math = i ** 2
        listbox.insert(END, str(math))
    total = time() - start

    label = Label(window, text="The math took {} seconds to execute.".format(str(total)))

    label.pack()
    listbox.pack()


b1 = Button(root, text="Click me!", command=do_math).pack()

root.mainloop()