Python : qu'est-ce que produit le code if __name__ == __main__ ?

Le langage Python possède des variables spéciales qui sont automatiquement remplies lors de l'exécution d'un programme. La variable __name__ en fait partie.

La variable __name__ varie selon le module dans lequel on se trouve durant l'exécution du programme. Dans le module principal, sa valeur sera égale à __main__. Si l'on se trouve dans un autre module importé, alors sa valeur sera égale au nom du module principal. Le test if (__name__ == __main__) permet de faire la distinction entre les deux cas. Cette condition est utilisée pour développer un module pouvant à la fois être exécuté directement mais aussi être importé par un autre module pour apporter ses fonctions. Vous pouvez insérer dans ce bloc de code des instructions destinées au cas où le module est directement exécuté. Le python est un langage qui n'a pas de méthode main(), comme c'est le cas dans le langage C. Lorsque l'on charge un module, le code exécuté est celui situé directement au plus haut niveau. Cette condition permet donc de regrouper les instructions que l'on veut utiliser dans le cas d'une exécution directe du module.

#monScript.py
if __name__ == __main__:
print(mon script est exécuté directement)
else
print(mon script est importé par un autre module)
#monAutreScript.py
import monScript

En lançant le script monScript avec la commande python monScript.py, on obtient le message mon script est exécuté directement. Si par contre on exécute le script monAutreScript, qui importe le fichier monScript.py, le message affiché sera mon script est importé par un autre module.

Python