Maison > développement back-end > Tutoriel Python > Pourquoi Python exécute-t-il du code au moment de l'importation et comment puis-je l'empêcher ?

Pourquoi Python exécute-t-il du code au moment de l'importation et comment puis-je l'empêcher ?

DDD
Libérer: 2025-01-02 22:26:43
original
517 Les gens l'ont consulté

Why Does Python Execute Code at Import Time, and How Can I Prevent It?

Comprendre l'exécution du module Python au moment de l'importation et son atténuation

Vous rencontrez un problème particulier lors de l'exécution de votre programme Python à l'aide de batch.py. Lors de l'importation du module principal, une erreur se produit. Cette question explore pourquoi Python exécute du code au moment de l'importation et propose une solution pour atténuer ce comportement.

Le problème sous-jacent

Python interprète des mots-clés tels que class et def comme des instructions exécutables. . L'importation d'un module déclenche l'exécution immédiate de ces instructions. Dans le cas de batch.py, l'importation de main entraîne l'exécution du code de main, provoquant l'erreur susmentionnée.

Solution : exécuter le code uniquement lorsque cela est nécessaire

L'idiomatique L'approche pour résoudre ce problème consiste à séparer l'exécution du code. Les pratiques suivantes vous permettent de définir des fonctions et des classes tout en empêchant leur exécution sauf si le module est exécuté directement :

# Code to be executed regardless of import status
# (e.g., class and function definitions)

def main():
    # Code to be executed only when the module is run as the main program

if __name__ == "__main__":
    main()
Copier après la connexion

En plaçant votre code exécutable au sein de la fonction principale, Python ne l'exécute que lorsque le module est exécuté directement via son nom de script, tel que "python main.py". Cela empêche l'exécution involontaire de code lors des importations de modules, comme dans le cas de "python batch.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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal