Auflösen der Schaltflächenbefehlszuweisung in einer Tkinter-for-Schleife mit Lambda
Beim Erstellen mehrerer Schaltflächen innerhalb einer for-Schleife mit der Lambda-Funktion wird die Zuweisung einer Es kann eine Herausforderung sein, für jede Schaltfläche einen eindeutigen Parameter festzulegen. Standardmäßig verweist der Lambda-Ausdruck auf die Namensvariable, die bei jeder Schleifeniteration neu zugewiesen wird. Dies führt dazu, dass alle Schaltflächen den zuletzt zugewiesenen Wert erben.
Um dieses Problem zu lösen, können im Lambda-Ausdruck Standardschlüsselwortparameter verwendet werden. Dadurch wird sichergestellt, dass jede Schaltfläche ihren eigenen eindeutigen Parameter erhält:
user_button = Tkinter.Button(self.root, text=name, command=lambda name=name: self.a(name))
Durch die Bindung des aktuellen Werts der Variablen „name“ an das Schlüsselwortargument „name“ des Lambda bei jeder Schleifeniteration wird die gewünschte Funktionalität erreicht. Jede Schaltfläche führt nun wie vorgesehen die a()-Funktion mit ihrem eigenen eindeutigen Parameter aus.
Das obige ist der detaillierte Inhalt vonWie vermeide ich Probleme bei der Erfassung von Lambda-Variablen beim Erstellen mehrerer Tkinter-Schaltflächen in einer Schleife?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!