Maison >développement back-end >Tutoriel Python >Pourquoi la commande de mon bouton s'exécute-t-elle immédiatement au lieu d'un clic ?
Question :
Dans le code fourni, un bouton est créé et son option de commande est définie sur un appel de fonction avec un argument. Cependant, le bouton imprime l'argument et une autre chaîne immédiatement après sa création et ne répond pas aux clics. Pourquoi cela se produit-il ?
Réponse :
Le code fourni transmet le résultat du bouton d'appel de fonction('hey') directement à l'option de commande. Cela provoque l'exécution immédiate de la fonction, plutôt que lorsque vous cliquez sur le bouton.
Pour résoudre ce problème, la bonne façon de transmettre une fonction en tant que commande est d'utiliser son nom sans parenthèses ni arguments. Par exemple :
b = Button(admin, text='as', command=button)
Cependant, pour passer un argument à une fonction, vous pouvez utiliser une fonction lambda, qui est une fonction anonyme qui renvoie une référence à elle-même :
b = Button(admin, text='as', command=lambda: button('hey'))
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!