This will do the trick:
for i in range(len(COMlist)):
COMSetDest.append(COMlist[i])
menuCOM.add_command(label=COMlist[i], command= lambda number = i: COMset(COMlist[number])) # probelm
print(i)
- The code in your case always assigned the last value of
for
loop
into the lambda
function.
- You need to use this expression
command = lambda number = i: f(number)
- This way it will assign the correct value in each iteration of your for loop to the lambda function.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…