Heim >Backend-Entwicklung >Python-Tutorial >Warum wird der Befehl meiner Schaltfläche sofort ausgeführt, anstatt beim Klicken?
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!