Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mengelakkan Isu Tangkapan Pembolehubah Lambda Apabila Mencipta Berbilang Butang Tkinter dalam Gelung?

Bagaimana untuk Mengelakkan Isu Tangkapan Pembolehubah Lambda Apabila Mencipta Berbilang Butang Tkinter dalam Gelung?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-15 22:11:12396semak imbas

How to Avoid Lambda Variable Capture Issues When Creating Multiple Tkinter Buttons in a Loop?

Menyelesaikan Tugasan Perintah Butang dalam Tkinter untuk Gelung Menggunakan Lambda

Apabila mencipta berbilang butang dalam gelung for menggunakan fungsi lambda, tetapkan parameter unik untuk setiap butang boleh mencabar. Secara lalai, ungkapan lambda merujuk kepada pembolehubah nama, yang ditetapkan semula semasa setiap lelaran gelung. Ini membawa kepada semua butang mewarisi nilai yang diperuntukkan terakhir.

Untuk menyelesaikan isu ini, parameter kata kunci lalai boleh digunakan dalam ungkapan lambda. Ini memastikan setiap butang menerima parameter tersendiri:

user_button = Tkinter.Button(self.root, text=name,
                             command=lambda name=name: self.a(name))

Dengan mengikat nilai semasa pembolehubah nama pada hujah kata kunci nama lambda dengan setiap lelaran gelung, kefungsian yang diingini dicapai. Setiap butang kini akan melaksanakan fungsi a() dengan parameter uniknya sendiri, seperti yang dimaksudkan.

Atas ialah kandungan terperinci Bagaimana untuk Mengelakkan Isu Tangkapan Pembolehubah Lambda Apabila Mencipta Berbilang Butang Tkinter dalam Gelung?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn