Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bilakah Fungsi Parameter \"arahan\" Butang Dilaksanakan?

Bilakah Fungsi Parameter \"arahan\" Butang Dilaksanakan?

Barbara Streisand
Barbara Streisandasal
2024-10-19 07:57:02978semak imbas

When is the Button's

Perlaksanaan Parameter "perintah" Butang pada Perisytiharan: Membongkar Misteri

Dalam Python tkinter, parameter "perintah" untuk widget Butang bertujuan untuk menentukan fungsi untuk dilaksanakan apabila butang ditekan. Walau bagaimanapun, salah tanggapan yang biasa di kalangan pemula ialah pemerhatian bahawa fungsi yang dikaitkan dengan "perintah" dilaksanakan walaupun pada masa pengisytiharan butang.

Untuk memahami tingkah laku ini, kita perlu menyelidiki cara Python mengendalikan parameter fungsi. Apabila anda menghantar fungsi sebagai parameter, terdapat dua kemungkinan:

  • Melalui objek fungsi: Ini dicapai dengan hanya merujuk nama fungsi, seperti command=Hello.
  • Melepasi nilai pulangan fungsi: Ini dilakukan dengan melampirkan panggilan fungsi dalam kurungan, seperti command=Hello().

Dalam kod contoh yang anda berikan, Hello() dihantar sebagai parameter kepada widget Button, yang bermaksud bahawa fungsi itu dilaksanakan serta-merta, dan nilai pulangannya dihantar kepada "perintah." Oleh kerana Hello() tidak mengembalikan apa-apa, ia mengembalikan Tiada, yang kemudiannya diberikan kepada parameter "perintah" butang, dengan berkesan tidak melakukan apa-apa.

Untuk menyelesaikan isu ini dan laksanakan fungsi hanya apabila butang diklik, anda harus lulus objek fungsi, seperti ini:

<code class="python">hi = Button(frame, text="Hello", command=Hello)</code>

Dengan cara ini, apabila butang ditekan, fungsi Hello() akan dipanggil dan akan melaksanakan kod yang dimaksudkan.

Selain itu , jika anda perlu menghantar hujah kepada fungsi, anda boleh menggunakan ungkapan lambda untuk membungkus panggilan fungsi, seperti yang ditunjukkan di bawah:

<code class="python">hi = Button(frame, text="Hello", command=lambda: Goodnight("Moon"))</code>

Dalam kes ini, ungkapan lambda memastikan fungsi Goodnight() tidak dilaksanakan pada masa pengisytiharan butang, sebaliknya menunggu sehingga butang diklik dan arahan dilaksanakan.

Atas ialah kandungan terperinci Bilakah Fungsi Parameter \"arahan\" Butang Dilaksanakan?. 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