为什么我的 enumerate() 函数中的索引无法正常运行? [重复]

问题描述 投票:0回答:1

因此,当我尝试为侧边栏制作按钮时,我使用 for 循环为每个类制作一个按钮。

for index, course in enumerate(api.pull_courses('insert_my_api_key_which_works')):
            course_button = customtkinter.CTkButton(self, text=course,
                            command=lambda: controller.show_frame('ClassPage' + str(index)))
            print(index)
            course_button.place(relx=0.5, rely=((index + 1) * ((0.6)/9))+0.2, anchor=customtkinter.CENTER)

print(index)
函数给出输出

0
1
2
3
4
5
6
7

但是

command=lambda: controller.show_frame('ClassPage' + str(index))
一直尝试给
ClassPage7
上课,而不是
Classpage0
ClassPage1
等。 有谁知道原因或有解决办法以供将来参考吗?

python string for-loop enumerate customtkinter
1个回答
0
投票

要修复它,请按以下方式创建

lambda

command=lambda index=index: controller.show_frame("ClassPage" + str(index))
© www.soinside.com 2019 - 2024. All rights reserved.