Seite 1 von 1

lokale/globale Variable

Verfasst: Sonntag 19. November 2023, 00:38
von Nobima
Guten Tag,
in einer mit <after> sich wiederholenden Aktualisierungs-Funktion rufe ich eine Animation in der Klasse mit z.B
<lbl_with_my_gif = AnimatedGif(canvas, 'Flamme.gif', 0.05)>
auf.
Bei geänderter Bedingung in der Aktualisierung soll die Animation wieder mit
<lbl_with_my_gif.destroy>
gelöscht werden. Es funktioniert aber nicht, da
<lbl_with_my_gif >
als lokale Variable vorliegt.
Das übliche Erzeugen einer globalen Variable klappt nicht. Wie erzeuge ich in diesem Fall eine globale Variable um die Animation bei einem späterem Aufruf der Aktualisierungs-Funktion wieder löschen zu können ?

Re: lokale/globale Variable

Verfasst: Sonntag 19. November 2023, 00:53
von Nobima
Ich ziehe die Frage zurück. Ich habe versehentlich <lbl_with_my_gif > im Hauptprogramm und in der Funktion als global definiert.

Re: lokale/globale Variable

Verfasst: Sonntag 19. November 2023, 01:54
von sparrow
Die Antwort ist: Gar nicht.
Man verwendet keine globalen Variablen.
Jede nicht-triviale Verwendung von Oberflächen erfordert den Einsatz von Klassen. Die speichern den Zustand.
Globale Variablen sind der falsche Weg.

Uneingerückt, also auf Modulebene, stehen nur die Importe und die Definition von Klassen, Funktionen und Konstanten. Konstanten zeichnen sich dadurch aus, dass sich ihr Wert nie ändert. Variablen sind da falsch.

Re: lokale/globale Variable

Verfasst: Sonntag 19. November 2023, 11:36
von Nobima
Vielen Dank für die Antwort, Gibt es ein Beispiel mit dem die Aussage verständlicher wird ?

Re: lokale/globale Variable

Verfasst: Sonntag 19. November 2023, 12:00
von Dennis89
Hallo,

hier ein kleines tkinter-Programm, das Klassen, 'after' und natürlich keine globalen Variablen enthält.
viewtopic.php?p=424576#p424576

Grüße
Dennis