Maison >développement back-end >Tutoriel Python >Comment empêcher l'exécution de code Python lors de l'importation de modules ?

Comment empêcher l'exécution de code Python lors de l'importation de modules ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-20 20:09:11148parcourir

How to Prevent Python Code Execution During Module Import?

Comment empêcher Python d'exécuter du code lors de l'importation

Vous avez implémenté un programme Python qui permet deux méthodes d'exécution : une mode avec entrée utilisateur (main.py) et un mode batch qui traite les entrées d'un fichier (batch.py). Cependant, l'importation de main.py dans batch.py ​​déclenche l'exécution du code dans main.py, entraînant des erreurs.

Raison :

En Python, des mots-clés comme class et def représentent les instructions qui sont exécutées lorsqu'elles sont rencontrées. Ces déclarations ne sont pas de simples déclarations mais des déclarations actives, une fonctionnalité de conception qui garantit l'existence du contenu dans votre module.

Solution :

L'approche Pythonic pour résoudre ce problème est d'adopter la structure suivante :

# Place any code that should run regardless of execution mode here (e.g., class/def)

def main():
    pass

if __name__ == "__main__":
    # Code that is only executed when called as "python main.py"
    main()

Avec cette approche, le code placé en dehors de la fonction main s'exécutera indépendamment de comment le script est appelé (directement ou via l'importation). Le code dans la fonction main ne s'exécutera que lorsque le script est exécuté directement (python main.py).

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn