Le mystère de l'exécution des modules de Python
Dans la programmation Python, il est possible de rencontrer un comportement inattendu lors de l'importation de modules. Considérons un programme qui propose deux modes de fonctionnement : le mode interactif avec l'utilisateur via main.py et le mode batch via batch.py.
Le problème survient lorsque batch.py importe main.py mais déclenche accidentellement l'exécution de son code. Cela se produit parce que Python traite les mots-clés comme class et def comme des instructions exécutables plutôt que comme des déclarations.
Solution : exécution conditionnelle
Pour éviter cette exécution indésirable, Python propose une solution connue comme exécution conditionnelle. Cela implique d'encapsuler le code destiné à s'exécuter uniquement lorsque le module est appelé directement, et non importé.
L'extrait suivant illustre cette approche :
# Code that can be executed both when called directly and imported ... # Code to be executed only when called directly def main(): ... # Conditional execution to only run 'main' when the module is called directly if __name__ == "__main__": main()
Dans ce modèle, tout code placé en dehors du if __name__ == "__main__" le bloc sera exécuté, que le module soit importé ou appelé directement. Le code de ce bloc ne sera exécuté que lorsque le module est appelé directement, empêchant ainsi toute exécution indésirable lors des importations.
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!