Moin ,
ich bin es mal wieder.
Ich hätte diesmal folgende Frage:
Ich würde gerne prüfen wie oft ein Button angeklickt wurde.
Es soll nur ein Text ausgegeben werden wenn er das erste Mal angeklickt wurde.
Überlegt habe ich mir folgendes:
1.Ich nehm ein Variable und setz die auf 0.
2. in der Routine nennen wir sie mal klick würde das ganze hochgezeilt
Also grob skizziert:
variable=0
def klick():
variable=variable+1
...
Aber leider geht das ja nicht, da er die varaible innerhalb der Methode klick nicht kennt.
Gibt es überhaupt eine Möglichkeit?
Merci schonmal
Anzahl der Button-Clicks ermitteln
Hi,
ich habe nun alles gelesen was man wohl über namespaces und globale/lokale Variablen in Python im Netz vorgesetzt bekommt und ich komme auf keinen grünen Zweig.
Wenn ich es richtig verstanden habe, kann ich mit .
eine Variable als global markieren.
Wenn ich die nun in einer Funktion aufrufe zeigt mir
0
Zauberhaft.
Nun bin ich so dreist und möchte die Variable in einer Funktion hochzählen.
Also mache ich folgendes:
Obwohl ich es global gemacht habe (so dachte ich laut der ganzen Tutorials) kann ich nichts zuweisen und es kommt immer der Fehler
'referrenced before assignment'
Das mit der Klasse habe ich auch nicht hinbekommen..es ist zum Fliegenfischen!
ich habe nun alles gelesen was man wohl über namespaces und globale/lokale Variablen in Python im Netz vorgesetzt bekommt und ich komme auf keinen grünen Zweig.
Wenn ich es richtig verstanden habe, kann ich mit .
Code: Alles auswählen
global klick
klick=0
Wenn ich die nun in einer Funktion aufrufe zeigt mir
Code: Alles auswählen
print klick
Zauberhaft.
Nun bin ich so dreist und möchte die Variable in einer Funktion hochzählen.
Also mache ich folgendes:
Code: Alles auswählen
global klick
klick=0
def funktion_count():
klick=klick+1
print klick
'referrenced before assignment'
Das mit der Klasse habe ich auch nicht hinbekommen..es ist zum Fliegenfischen!
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Dann solltest du erstmal das Kapitel zu OOP im Tutorial durcharbeiten und sichergehen dass du verstehst wie es funktioniert. Ohne das kannst du GUIs so ziemlich vergessen.timo_81 hat geschrieben:Das mit der Klasse habe ich auch nicht hinbekommen..es ist zum Fliegenfischen!
Und das es ``global`` überhaupt gibt, das vergisst du am besten wieder.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Stimmt natürlich, aber ...Leonidas hat geschrieben:Dann solltest du erstmal das Kapitel zu OOP im Tutorial durcharbeiten und sichergehen dass du verstehst wie es funktioniert. Ohne das kannst du GUIs so ziemlich vergessen.
... jetzt ist er schon so nah dran.Leonidas hat geschrieben:Und das es ``global`` überhaupt gibt, das vergisst du am besten wieder.
@timo_81: Setzt mal die global-Anweisung in die Funktion ...
Moin,
sorry wenn ich euch nerve.
Aber so wie ich das gelesen habe, muss ich global x in die funktion schreiben
wenn ich die Variable danach ausserhalb der Funktion benutzen möchte.
Ich möchte es aber andersum.
Ich möchte dass die vorher einen Wert bekommt und zwar 0.
Dann möchte ich diese Variable in einer Funktion weiter hochzählen.
Also entweder ich bin übelst als Kleinkind vom Wickeltisch gefallen,
oder ich habe mich vorher nur blöd ausgedrückt
Gibt es noch ne Idee?
sorry wenn ich euch nerve.
Aber so wie ich das gelesen habe, muss ich global x in die funktion schreiben
wenn ich die Variable danach ausserhalb der Funktion benutzen möchte.
Ich möchte es aber andersum.
Ich möchte dass die vorher einen Wert bekommt und zwar 0.
Dann möchte ich diese Variable in einer Funktion weiter hochzählen.
Also entweder ich bin übelst als Kleinkind vom Wickeltisch gefallen,
oder ich habe mich vorher nur blöd ausgedrückt
Gibt es noch ne Idee?
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Ja, solltest du aber nicht machen, sonst kommt da Spaghetticode raus.timo_81 hat geschrieben:Aber so wie ich das gelesen habe, muss ich global x in die funktion schreiben
wenn ich die Variable danach ausserhalb der Funktion benutzen möchte.
Klassen nutzen. Dafür sind sie ja da.timo_81 hat geschrieben:Gibt es noch ne Idee?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Du hast dich schon klar ausgedrückt und ich denke, wir haben von Anfang an verstanden, was du willst.timo_81 hat geschrieben:Moin,
sorry wenn ich euch nerve.
Aber so wie ich das gelesen habe, muss ich global x in die funktion schreiben
wenn ich die Variable danach ausserhalb der Funktion benutzen möchte.
Ich möchte es aber andersum.
Ich möchte dass die vorher einen Wert bekommt und zwar 0.
Dann möchte ich diese Variable in einer Funktion weiter hochzählen.
Also entweder ich bin übelst als Kleinkind vom Wickeltisch gefallen,
oder ich habe mich vorher nur blöd ausgedrückt
Gibt es noch ne Idee?
Nur: Es ist alles gesagt.
Ich habe dir global-Lösung beschrieben - warum du es so nicht machst, weiß ich nicht.
Ausprobiert hast du es anscheinend ja nicht, sonst hättest du dich nicht wie oben zitiert dazu geäußert.
Die andere - langfristig bessere - Idee hat Leonidas ebenfalls schon zweimal benannt.
Jetzt bist du dran.