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 😅💯

0
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

0

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?

0
daCypher  28.07.2022, 13:17
@Alf84

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

0