Python Funktionen mit return beenden?

2 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

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.


Alf84 
Beitragsersteller
 27.07.2022, 22:58

Habs hinbekommen. Endlich funktioniert der Mist 😅💯

Alf84 
Beitragsersteller
 27.07.2022, 22:53

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.


Alf84 
Beitragsersteller
 28.07.2022, 12:31

Werde ich ausprobieren. Kann ich eigentlich auch den Kill Button nach verwenden verschwinden lassen?

daCypher  28.07.2022, 13:17
@Alf84

ja. Kannst einfach B.destroy() schreiben, dann ist der Button wieder weg.