Apakah perbezaan antara fungsi yang ditakrifkan oleh def dalam Python dengan kurungan dan tanpa kurungan?
我想大声告诉你
我想大声告诉你 2017-06-12 09:27:41
0
2
998

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?

我想大声告诉你
我想大声告诉你

membalas semua(2)
phpcn_u1582
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).

Peter_Zhu

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())

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan