Lambda を使用した Tkinter for ループでのボタン コマンド割り当ての解決
ラムダ関数を使用して for ループ内で複数のボタンを作成する場合、各ボタンに固有のパラメータを設定するのは難しい場合があります。デフォルトでは、ラムダ式は name 変数を参照し、ループの反復ごとに再割り当てされます。これにより、すべてのボタンが最後に割り当てられた値を継承することになります。
この問題を解決するには、ラムダ式でデフォルトのキーワード パラメーターを使用できます。これにより、各ボタンが独自の個別のパラメータを受け取ることが保証されます:
user_button = Tkinter.Button(self.root, text=name, command=lambda name=name: self.a(name))
各ループ反復で name 変数の現在の値をラムダの name キーワード引数にバインドすることで、目的の機能が実現されます。各ボタンは、意図したとおり、独自の一意のパラメーターを使用して a() 関数を実行します。
以上がループ内で複数の Tkinter ボタンを作成するときに Lambda 変数キャプチャの問題を回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。