Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapa Perintah Butang Saya Melaksanakan Serta-merta Daripada Klik?
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!