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
Lepaskan: 2024-12-15 22:11:12
asal
300 orang telah melayarinya

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))
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan