I'm creating a Menu
in Python 3.7 using Tkinter. When I create a menu with hard-coded values like:
obj_menu = Menu(textbox, tearoff=0)
obj_menu.add_command(label="a", command=lambda : foo("a", index))
index = index + 1
obj_menu.add_command(label="b", command=lambda : foo("b", index))
everything works fine. in my callback method foo() I get a and b correct values when select 1st and 2nd menu item respectively.
But when I create this menu in for loop, I always get last char in my callback method foo().
for idx, char in enumerate(alphabets):
obj_menu.add_command(label=char, command=lambda : foo(char, idx))
I'm confused as why the method only gets value of last index no matter which menu index I select. Am I missing something?