ich hoffe ich bin hier richtig. Ich habe ein kleines Python Script geschrieben um meinen PC nach dem automatischen starten wieder herunterzufahren. Zu einem Problem habe ich in dem Forum hier eine Lösung gefunden und Codeteile übernommen. Das Programm läuft auch super, aber ich frage mich warum. :K
Code:
Code: Alles auswählen
def killcounter(count):
label["text"] = count
if count > 0:
main.after(1000, killcounter, count-1)
elif count == 0:
os.system("shutdown /s /t 3")
#Funktionen
def ende():
main.destroy()
def hfahren():
main.destroy()
os.system("shutdown /s /t 1")
#Hauptfenster
main = tkinter.Tk()
#lable
label = tkinter.Label(main)
label.place(x=90, y=65)
#Ende
endebuttonB = tkinter.Button(main, text="Ende", command=ende)
endebuttonB.pack()
herunterfahrenB = tkinter.Button(main, text="Herunterfahren", command=hfahren)
herunterfahrenB.pack()
killcounter(5)
main.mainloop()
Es wird hier "5" der Funktion übergeben, diese rechnet sich "4" aus und es geht weiter, da es ja eine Schleife ist. Werden danach nicht Theoretisch nocheinmal "5" übergeben... ? doch das Programm rechnet mit "4" weiter, als ob er sich gemerkt hätte das er das Argument bereits berabeitet hat. Warum ?
1. Aufrufen der Funktion und übergabe von "5"
Code: Alles auswählen
killcounter(5)
Code: Alles auswählen
def killcounter(count):
label["text"] = count
if count > 0:
main.after(1000, killcounter, count-1)
elif count == 0:
os.system("shutdown /s /t 3")
Code: Alles auswählen
main.mainloop()
Code: Alles auswählen
killcounter(5)
Es tut mir Leid hier eine solch "Anfängerhafte" Frage stellen zu müssen.
Danke im Vorraus
LG Ben