Wann wird die Parameterfunktion „Befehl' der Schaltfläche ausgeführt?

Barbara Streisand
Freigeben: 2024-10-19 07:57:02
Original
1067 Leute haben es durchsucht

When is the Button's

Ausführung des „command“-Parameters des Buttons bei der Deklaration: Das Geheimnis lüften

In Python tkinter ist der „command“-Parameter für das Button-Widget dazu gedacht, eine Funktion anzugeben ausgeführt werden, wenn die Taste gedrückt wird. Ein unter Anfängern häufiges Missverständnis ist jedoch die Beobachtung, dass die mit „Befehl“ verknüpfte Funktion bereits zum Zeitpunkt der Schaltflächendeklaration ausgeführt wird.

Um dieses Verhalten zu verstehen, müssen wir uns damit befassen, wie Python mit Funktionsparametern umgeht. Wenn Sie eine Funktion als Parameter übergeben, gibt es zwei Möglichkeiten:

  • Übergabe des Funktionsobjekts: Dies wird durch einfache Referenzierung des Funktionsnamens erreicht, z. B. command=Hello.
  • Übergabe des Rückgabewerts der Funktion: Dies geschieht durch Einschließen des Funktionsaufrufs in Klammern, z. B. command=Hello().

In dem von Ihnen bereitgestellten Beispielcode wird Hello() als Parameter an übergeben das Button-Widget, was bedeutet, dass die Funktion sofort ausgeführt wird und ihr Rückgabewert an „command“ übergeben wird. Da Hello() nichts zurückgibt, gibt es None zurück, das dann dem „Befehl“-Parameter der Schaltfläche zugewiesen wird und praktisch nichts bewirkt.

Um dieses Problem zu beheben und die Funktion nur auszuführen, wenn auf die Schaltfläche geklickt wird, Sie sollten das Funktionsobjekt wie folgt übergeben:

<code class="python">hi = Button(frame, text="Hello", command=Hello)</code>
Nach dem Login kopieren

Auf diese Weise wird beim Drücken der Schaltfläche die Funktion Hello() aufgerufen und führt den beabsichtigten Code aus.

Zusätzlich , wenn Sie Argumente an die Funktion übergeben müssen, können Sie einen Lambda-Ausdruck verwenden, um den Funktionsaufruf zu umschließen, wie unten gezeigt:

<code class="python">hi = Button(frame, text="Hello", command=lambda: Goodnight("Moon"))</code>
Nach dem Login kopieren

In diesem Fall stellt der Lambda-Ausdruck sicher, dass die Goodnight()-Funktion wird nicht zum Zeitpunkt der Schaltflächendeklaration ausgeführt, sondern wartet, bis auf die Schaltfläche geklickt und der Befehl ausgeführt wird.

Das obige ist der detaillierte Inhalt vonWann wird die Parameterfunktion „Befehl' der Schaltfläche ausgeführt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage