for ループを使用して、複数の番号付きコマンドを Tkinter メニューに追加しようとしています。コマンドが呼び出されると、その番号がコマンド関数の引数として使用されることになっています。次のコードは、ループの終了後にコマンドが呼び出されたときに i が評価されるため、機能しません。これは、function1 に渡される引数が常に 15 であることを意味しますが、コマンド ラベルに表示される数値を渡すつもりでした。これを達成する方法はありますか?
注: ラベル付けは意図したとおりに機能し、0 ~ 15 のラベルが付いた 16 のオプションが生成されます。
newMenu = Menu(menuButtonInstance)
for i in range(16):
newMenu.add_command(label = '%s'%i,
command = lambda:function1(i))
menuButtonInstance.config(menu = newMenu)
前もって感謝します