Quelle est la différence entre les fonctions définies par def en Python avec et sans parenthèses ?
我想大声告诉你
我想大声告诉你 2017-06-12 09:27:41
0
2
973

La procédure est la suivante :

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

L'effet de ce programme est qu'il y a un bouton. Si vous appuyez dessus, vous me frappez apparaîtra. Appuyez à nouveau dessus et il disparaîtra ce cycle
Pourquoi le bouton est-il écrit comme bouton = tk.Button(window, text). = 'Générer des questions et des réponses',font = (('Microsoft Yahei'),12), command = run()), ajoutez des parenthèses lors de l'appel de la fonction, et appuyez à nouveau sur le bouton, il dira toujours que vous m'avez frappé, et le contenu de l'étiquette ci-dessus ne changera plus ?

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

répondre à tous(2)
phpcn_u1582
button = tk.Button(window,text = 'hit',font = (('微软雅黑'),12),command = run)

Dans cette phrase, enregistrez simplement le bouton par la fonction d'exécution elle-même et il sera automatiquement appelé après avoir cliqué sur le bouton (équivalent à exécuter après avoir cliqué sur ). run()Si changé en

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

immédiatement lorsqu'il verra cette phrase, puis enregistrera la valeur de retour run() de l'appel au bouton. Désormais, la valeur de retour est appelée après avoir cliqué sur le bouton (Aucune dans cet exemple).

Peter_Zhu

la commande peut être appelée de deux manières :
b = Button(... command = button)
b = Button(... command = lambda: button('hey'))

Si vous souhaitez utiliser () pour appeler, vous pouvez utiliser lambda pour écrire :
button = tk.Button(window, text = 'Générer des questions et des réponses', font = (('Microsoft Yahei'),12), command =lambda : exécuter())

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!