Heim >Backend-Entwicklung >Python-Tutorial >Warum wird der Befehl meiner Schaltfläche sofort ausgeführt, anstatt beim Klicken?

Warum wird der Befehl meiner Schaltfläche sofort ausgeführt, anstatt beim Klicken?

Susan Sarandon
Susan SarandonOriginal
2024-12-27 12:09:11156Durchsuche

Why Does My Button's Command Execute Immediately Instead of on Click?

Warum wird der Befehl meiner Schaltfläche sofort nach der Erstellung ausgeführt?

Frage:

Im bereitgestellten Code ist eine Schaltfläche erstellt und seine Befehlsoption wird auf einen Funktionsaufruf mit einem Argument gesetzt. Allerdings gibt die Schaltfläche das Argument und eine weitere Zeichenfolge sofort nach der Erstellung aus und reagiert nicht auf Klicks. Warum passiert das?

Antwort:

Der bereitgestellte Code übergibt das Ergebnis der Funktionsaufrufschaltfläche („hey“) direkt an die Befehlsoption. Dies führt dazu, dass die Funktion sofort ausgeführt wird und nicht erst, wenn auf die Schaltfläche geklickt wird.

Um dies zu beheben, besteht die richtige Möglichkeit, eine Funktion als Befehl zu übergeben, darin, ihren Namen ohne Klammern oder Argumente zu verwenden. Zum Beispiel:

b = Button(admin, text='as', command=button)

Um jedoch ein Argument an eine Funktion zu übergeben, können Sie eine Lambda-Funktion verwenden, bei der es sich um eine anonyme Funktion handelt, die einen Verweis auf sich selbst zurückgibt:

b = Button(admin, text='as', command=lambda: button('hey'))

Das obige ist der detaillierte Inhalt vonWarum wird der Befehl meiner Schaltfläche sofort ausgeführt, anstatt beim Klicken?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn