Fonction principale de Python

Dans ce tutoriel, nous allons apprendre à utiliser l'attribut __name__ d'un programme Python pour l'exécuter dynamiquement dans différents contextes.

Quelle est la fonction main () en Python?

Certains langages de programmation ont une fonction spéciale appelée main()qui est le point d'exécution d'un fichier programme. L'interpréteur Python, cependant, exécute chaque ligne en série à partir du haut du fichier et n'a pas de main()fonction explicite .

Python propose d'autres conventions pour définir le point d'exécution. L'un d'eux utilise la main()fonction et la propriété __name__ d'un fichier python.

Qu'est-ce que __name__ en Python?

La variable __name__ est une variable Python intégrée spéciale qui affiche le nom du module actuel.

Il a des valeurs différentes selon l'endroit où nous exécutons le fichier Python. Regardons un exemple.

Exécution d'un fichier Python en tant que script

Supposons que nous ayons un fichier Python appelé helloworld.py avec le contenu suivant:

 print(__name__) 

Si nous exécutons helloworld.py à partir de la ligne de commande, il s'exécute en tant que script Python. Nous pouvons exécuter le programme Python en utilisant la commande suivante:

$ python helloworld.py

Lorsque nous exécutons le programme en tant que script, la valeur de la variable __name__ est définie sur __main__. Ainsi, la sortie du programme suivant sera:

 __principale__ 

Exécution d'un fichier Python en tant que module

Nous pouvons également exécuter un fichier Python en tant que module. Pour cela, nous devons importer ce fichier dans un autre programme Python. Regardons un exemple.

Supposons que nous ayons un fichier Python appelé main.py dans le même répertoire que le fichier heloworld.py. Il a le contenu suivant:

 import helloworld 

Lorsque nous exécuterons ce fichier, nous aurons la sortie suivante:

 Bonjour le monde 

Ici, nous pouvons voir que l'importation d'un module exécute également tout le code du fichier du module.

Mais, nous pouvons voir qu'au lieu d'afficher __main__, le programme affiche le nom du module ie helloworld.

C'est parce que, dans le contexte de l'exécution d'un fichier Python en tant que module, le nom du module lui-même est affecté à la variable __name__.

Utilisation de if conditionnel avec __name__

Maintenant que nous avons compris comment les valeurs sont affectées à la variable __name__, nous pouvons utiliser la ifclause conditionnelle pour exécuter le même fichier Python différemment dans différents contextes.

Regardons un exemple.

Supposons que nous changions le contenu du fichier helloworld.py comme suit:

 def main(): print("Hello World") if __name__=="__main__": main() 

Maintenant, lorsque nous l'exécutons en tant que script via la ligne de commande, le résultat sera:

 Bonjour le monde 

Cependant, lorsque nous l' exécutons en tant que module en l'important dans le fichier main.py , aucune sortie n'est affichée puisque la main()fonction n'est pas appelée.

Ici, nous avons créé une main()fonction personnalisée dans le fichier helloworld.py . Il est exécuté uniquement lorsque le programme est exécuté en tant que script autonome et non en tant que module importé.

C'est la manière standard de définir explicitement la main()fonction en Python. C'est l'un des cas d'utilisation les plus courants de la variable __name__ d'un fichier Python.

Articles intéressants...