variablen aus event-basierter function global verfügbar

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
kregular
User
Beiträge: 1
Registriert: Donnerstag 15. November 2012, 11:03

Hallo,

wahrscheinlich ist die Lösung für mein Problem einfach, ich suche nur nach den falschen Begriffen.
Ich rufe mit dem folgenden Code eine function auf:

Code: Alles auswählen

win.listbox.bind("<Double-Button-1>", SelectProject.select_project)
in der ich per Doppelklick ein Projekt auswähle. In der aufgerufenen function def select_project(Event): wird mir dieser Zeile:

Code: Alles auswählen

selProject = win.listbox.get(ACTIVE)
die Variable selProject mit einem Projektnamen gefüllt. Ein print(selProject) innerhalb der aufgerufenen function gibt mir brav den Inhalt der ausgewählten variablen selProject aus.

Ein print(selProject) AUSSERhalb der aufgerufenen function gibt mir jedoch garnichts aus...

Gibt es eine möglichkeit den Inhalt der Variablen aus der event-basierten function herüberzuretten?
Danke.
Gruß
Benutzeravatar
sparrow
User
Beiträge: 4600
Registriert: Freitag 17. April 2009, 10:28

Ja, es gibt auch in Python die Möglichkeit "globale" Variablen zu verwenden, aber in der Regel (und ich denke auch in diesem Fall) ist das unnötig, weil es von Design her das falsche Vorgehen wäre.

Wofür brauchst du denn die Variable außerhalb des Event-Funktion?
Um die Ansicht zu aktualisieren? Es ist eben die Aufgabe des Event-Funktion alle dafür notwendigen Schritte einzuleiten. Also wird die Variable hier den entsprechenden anderen Funktionen als Parameter übergeben.
Um dir zu "merken" was selektiert ist? Dann sollte die Listbox eine Funktion haben um eben diese Information zu erhalten.
Antworten