Rumah  >  Soal Jawab  >  teks badan

Apakah perbezaan antara fungsi yang ditakrifkan oleh def dalam Python dengan kurungan dan tanpa kurungan?

Prosedurnya adalah seperti berikut:

import tkinter as tk
window = tk.Tk()
window.title("我的程序")
window.geometry('400x300')
var = tk.StringVar()
lable = tk.Label(window,textvariable = var,font = (('微软雅黑'),12))
lable.pack()
on_hit = True
def run():
    global on_hit
    if on_hit == True:
        on_hit = False
        var.set('you hit me')
    else:
        on_hit = True
        var.set('')
button = tk.Button(window,text = 'hit',font = (('微软雅黑'),12),command = run)
button.pack()
window.mainloop()

Kesan program ini ialah terdapat butang apabila anda menekannya, anda menekan saya akan muncul dan ia akan hilang = 'Jana soalan dan jawapan',font = (('Microsoft Yahei'),12), arahan = run()), tambah tanda kurung semasa memanggil fungsi dan tekan butang sekali lagi, ia akan sentiasa mengatakan anda tekan saya, dan kandungan dalam label di atas tidak akan berubah lagi?

我想大声告诉你我想大声告诉你2686 hari yang lalu961

membalas semua(2)saya akan balas

  • phpcn_u1582

    phpcn_u15822017-06-12 09:29:41

    button = tk.Button(window,text = 'hit',font = (('微软雅黑'),12),command = run)

    Dalam ayat ini, simpan sahaja butang dengan fungsi run itu sendiri dan ia akan dipanggil secara automatik selepas butang itu diklik (bersamaan dengan berjalan selepas klik ). run()Jika ditukar kepada

    button = tk.Button(window,text = 'hit',font = (('微软雅黑'),12),command = run())

    Jurubahasa akan memanggil

    serta-merta apabila ia melihat ayat ini, dan kemudian menyimpan nilai pulangan run() panggilan ke butang Sekarang nilai pulangan dipanggil selepas butang diklik (Tiada dalam contoh ini).

    balas
    0
  • 天蓬老师

    天蓬老师2017-06-12 09:29:41

    arahan boleh dipanggil dalam dua cara:
    b = Butang(... arahan = butang)
    b = Butang(... arahan = lambda: butang('hai'))

    Jika anda ingin menggunakan () untuk memanggil, anda boleh menggunakan lambda untuk menulis:
    button = tk.Button(window, text = 'Jana soalan dan jawapan', font = (('Microsoft Yahei'),12), arahan =lambda: lari())

    balas
    0
  • Batalbalas