Python Funktionen mit return beenden?
Kann mir jemand sagen, warum die Funktionen nach klicken des Buttons immer noch funktionieren, obwohl is_dead zu true gesetzt wurde und somit return auslösen sollte? https://paste.pythondiscord.com/obehadibib
2 Antworten
Weil du in der Funktion KillHim eine lokale Variable namens is_dead erzeugst und dieser den Wert True zuweist.
Die globale Variable is_dead bleibt davon unberührt.
Das liegt daran, dass eine der wichtigsten Regeln bei Python lautet: Globale Variablen können explizit und implizit gelesen werden, geschrieben nur explizit.
Lösung: Füge am Anfang deiner Funktion noch
global is_dead
hinzu.
Erstmal vielen Dank. Ich habe jetzt in der Funktion KillHim
global is_dead = True
Geschrieben und bekomme jetzt eine Fehlercode mit invalid Syntax
Einerseits stimmt das, was Skohsl schon gesagt hat. Andererseits finde ich es eleganter, wenn du die Bindungen für die Tastendrücke wieder rausnimmst, anstatt in den Funktionen zu prüfen, ob is_dead True ist.
Also in KillHim diese Zeilen hinzufügen:
c.unbind_all("<KeyPress-a>")
c.unbind_all("<KeyPress-b>")
c.unbind_all("<KeyPress-c>")
c.unbind_all("<KeyPress-d>")
und dafür die ganzen Zeilen mit "is_dead" rausnehmen.
Werde ich ausprobieren. Kann ich eigentlich auch den Kill Button nach verwenden verschwinden lassen?