Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapa Perintah Butang Saya Melaksanakan Serta-merta Daripada Klik?

Mengapa Perintah Butang Saya Melaksanakan Serta-merta Daripada Klik?

Susan Sarandon
Susan Sarandonasal
2024-12-27 12:09:11157semak imbas

Why Does My Button's Command Execute Immediately Instead of on Click?

Mengapa Perintah Butang Saya Melaksanakan Serta-merta selepas Penciptaan?

Soalan:

Dalam kod yang disediakan, butang adalah dicipta dan pilihan arahannya ditetapkan kepada panggilan fungsi dengan hujah. Walau bagaimanapun, butang mencetak hujah dan rentetan lain serta-merta selepas penciptaan, dan tidak bertindak balas kepada klik. Mengapa ini berlaku?

Jawapan:

Kod yang disediakan menghantar hasil butang panggilan fungsi('hey') terus ke pilihan arahan. Ini menyebabkan fungsi dilaksanakan serta-merta, bukannya apabila butang diklik.

Untuk membetulkannya, cara yang betul untuk menghantar fungsi sebagai arahan ialah menggunakan namanya tanpa kurungan atau hujah. Contohnya:

b = Button(admin, text='as', command=button)

Walau bagaimanapun, untuk menghantar hujah kepada fungsi, anda boleh menggunakan fungsi lambda, iaitu fungsi tanpa nama yang mengembalikan rujukan kepada dirinya sendiri:

b = Button(admin, text='as', command=lambda: button('hey'))

Atas ialah kandungan terperinci Mengapa Perintah Butang Saya Melaksanakan Serta-merta Daripada Klik?. 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