Как записать время выполнения функции, вызываемой кнопкой? - PullRequest
0 голосов
/ 26 января 2019

Я создаю приложение (или программу), которое после нажатия кнопки создает новое окно и отображает результаты некоторых математических операций в списке. Я хочу, чтобы он также отображал время выполнения математики. Я попытался использовать 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 голосов
/ 26 января 2019

Вы не можете использовать функцию time.time(), потому что внутри вашей функции была переменная с именем time, из-за которой выскочило исключение (UnboundLocalError), переименовав эту переменную во что-то еще ИЛИ вставка 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...