У меня есть этот код python, чтобы создавать событие, которое работает каждая секунда. И да функционируй, проблема состоит в том, что я не понимаю хорошо почему.
Как я, в нем линия root.after(1000,timeChanged)
произведи так называемый переиталик, но нет недостатка предел возврата.
Вещь меняется, когда присоединяются скобки в конце концов root.after(1000,timeChanged())
. Здесь да пошли ошибку возврата.
Они знают, почему он отличный и почему он состоит в том, что оно функционирует?
import tkinter as tk
import time
def timeChanged():
date = time.strftime("%H:%M:%S")
timeLabel.configure(text = date)
root.after(1000,timeChanged)
root = tk.Tk()
root.title("Ventana")
root.geometry("400x400")
#timeLabel = tk.Label(root, bg = "orange", textvariable = var, padx = 5, pady = 5, width = 10)
timeLabel = tk.Label(root, bg = "orange", text = "h", padx = 5, pady = 5, width = 10)
timeLabel.pack()
timeChanged()
root.mainloop()
``
Аксель, когда ты выполняешь tГє cГіdigo, intГ©rprete python читает весь контент файла, и выполняет каждый instrucciГіn, что может. Для того, чтобы одна funciГіn смогла быть названной, необходимо, чтобы ты добавил их parГ©ntesis в конце имени Г©sta, как это случай ее penГєltima lГ-nea cГіdigo, который ты показываешь.
timeChanged() # Aquí se está llamando a la función timeChanged
Взамен, когда ты используешь after , не estГЎs выполняя ее funciГіn прямо, но он estГЎs говоря в after, что я она бросил после x миллисекунды, тогда, когда intГ©rprete он читает следующее:
def timeChanged():
date = time.strftime("%H:%M:%S")
timeLabel.configure(text = date)
root.after(1000,timeChanged)
SГіlo estГЎ читая ее definiciГіn ее funciГіn, но не она estГЎ выполняя.
Однако, когда ты делаешь вызов включая они parГ©ntesis, он estГЎs говоря в intГ©rprete, что я выполнил эту invocaciГіn в этом же самом моменте:
root.after(1000,timeChanged())
, Из-за которого cГіdigo он не продолжает читать и начинает повторять recursivamente, до тех пор, пока не случится ошибка.