logo

__nom__ en Python

Le nom du script ou du module Python en cours d'exécution est stocké dans la variable spéciale __name__ de Python. Python 3.0 a introduit la variable __name__, absente de Python 2. x. La valeur du script ou du module Python actuel, __main__, est affectée à la variable __name__ pendant son exécution.

Que signifie _nom_ ?

Python possède une variable intégrée appelée __name__ qui stocke le nom du script ou du module en cours d'exécution. Le nom du script ou du module est stocké dans la variable __name__ sauf si le module actuel est en cours d'exécution, auquel cas la valeur __main__ lui est affectée.

Par conséquent, lorsqu'un script Python est en cours d'exécution, la valeur de sa variable __name__ doit toujours être __main__ si elle est importée dans un autre script Python. Sinon, le nom du module apparaîtra.

Exemple :

Pour mieux comprendre cela, utilisons un exemple. Faire un script en Python appelé testing.py, et ajoutez-y le code suivant :

 # Code to define a function def anything(): print('Value of the __name__ : ', __name__) anything() 

Sortir:

 Value of the __name__ : __main__ 

Explication:

Le script s'exécute immédiatement en tant que programme principal, comme l'indique la sortie « Valeur du nom : main ». En Python, la valeur de la variable __name__ du script est automatiquement définie sur « __main__ » lorsque le script est exécuté directement. Cette sortie confirme que le script est exécuté directement plutôt qu'importé en tant que module dans un autre script

Construisons maintenant un autre script Python appelé mains.py et importez-y le précédent.

Exemple :

 # importing testing.py import testing testing.anything() 

Sortir:

 Value of the __name__ : testing 

Explication:

essai. any() est la méthode exécutée lorsque le script testing.py est importé dans un autre script Python à l'aide de tests d'importation. Dans cette situation, le nom du module, dans ce cas « testing », est défini comme la valeur de la variable __name__ dans testing.py plutôt que « __main__ ». Pour cette raison, le résultat des tests. any() est « Valeur du __name__ : test. » Cela illustre comment l'exécution directe du script plutôt que son importation en tant que module affecte la valeur de la variable __name__.

En utilisant la condition if name == main :

Nous utilisons le si déclaration et l'état __nom__ == __main__ déclarer que certain code Python devrait seulement être effectué lorsque le script est exécuté directement .

Exemple :

 # importing testing.py import testing if __name__ == __main__: testing.anything() 

Dans ce cas, la capacité du module ou du script actuel à s'exécuter indépendamment est vérifiée à l'aide de la chaîne __main__. Pour indiquer à l'interpréteur Python qu'un mot-clé de la variable __name__ est réservé ou spécial, il y a deux traits de soulignement de chaque côté du terme.

comment exécuter le script sous Linux

Exemple de code pour name en Python :

Comme indiqué précédemment, lorsque nous exécutons un fichier de code, le code est exécuté directement (il n'est même pas importé dans un autre fichier) et par conséquent, la valeur de la variable __name__ devient __main__.

 # defining a function def anything(): print('It is a function in the ScriptP1.') if __name__=='__main__': anything() print('Called from the ScriptP1.') else: print('ScriptP1 is imported into another file.') 

Sortir:

 It is a function in the ScriptP1. Called from the ScriptP1. 

Explication:

La fonction any() spécifiée dans le script ScriptP1 est exécutée directement en tant que programme principal, comme le montre la sortie « C'est une fonction dans ScriptP1 ». suivi de « Appelé depuis le ScriptP1 ». Lorsque le script est exécuté directement en Python, la variable __name__ est définie sur '__main__' ; par conséquent, la condition if __name__=='__main__': est évaluée à True, appelant la fonction any(). L'instruction print qui suit vérifie que le script est bien exécuté directement.

Maintenant, créons un nouveau fichier de script Python nommé ScriptP2.py, importons-y ScriptP1.py et essayons d'appeler la méthode ScriptP1 n'importe quoi().

Code : Le ScriptP2.py le code est fourni ici :

 import ScriptP1 if __name__=='__main__': ScriptP1.anything() print('Called from the ScriptP2.') 

Sortir:

 ScriptP1 is imported into another file. It is a function in the ScriptP1. Called from the ScriptP2. 

Explication:

Le script Python fourni montre comment importer le module 'ScriptP1' dans le script actif. La méthode 'anything()' est présente dans 'ScriptP1' et elle est appelée dans le script principal. Cette fonction est appelée et le script affiche « Appelé depuis le ScriptP2 ». pour indiquer que l'appel de fonction est terminé. Ce flux d'événements indique que la fonction spécifiée dans « ScriptP1 » était accessible et exécutée avec succès dans le contexte du script en cours d'exécution, identifié comme « ScriptP2 ».

Lorsque l'instruction d'importation pour ScriptP1 était exécutée dans ScriptP2, la variable __name__ avait la valeur ScriptP1 (le nom du module) ; mais, puisque ScriptP2 a été le premier script à s'exécuter, il aura désormais la valeur __main__.

Impression de la valeur de __name__ :

Imprimons la valeur de la variable __name__ à chaque étape de l'exécution pour vous aider à mieux la comprendre.

Exemple : Le code source du script Python ScriptP1.py est fourni ci-dessous :

 print('Value or the variable __name__ : ' + __name__) 

Sortir:

âge de Hrithik Roshan
 Value or the variable __name__ : __main__ 

Explication:

L'échantillon de code Python fourni génère la valeur de la variable __name__, qui, lorsque le script est exécuté directement, est évaluée comme « main ». Cela signifie que lorsque le script est lancé directement, le bloc de code qui vient après la condition if __name__ == '__main__': s'exécutera plutôt que d'être importé en tant que module dans un autre script. Ce type de comportement est fréquemment utilisé pour faire la distinction entre l'exécution d'un script en tant qu'application principale et son importation dans un autre script en tant que module.

Exemple 2 : Et voici le code source du script ScriptP2.py :

 # importing the file ScriptP1.py import ScriptP1 print('Value or the variable __name__ : ' + __name__) 

Sortir:

 Value or the variable __name__ : __main__ 

Explication:

Le script Python fourni utilise l'instruction import pour importer le fichier 'ScriptP1.py. ' Lorsqu'il est exécuté, 'main' est imprimé comme la valeur de la variable __name__. Cela signifie qu'au lieu d'être importé en tant que module dans un autre script, le script est exécuté directement en tant qu'application principale. Lors de l’exécution de scripts Python, c’est le comportement habituel ; le contexte d'exécution du script est reflété dans la variable __name__.

Résumé :

Dans la plupart des langages de programmation, la méthode ou la fonction principale est généralement utilisée comme point d'exécution d'un programme. Mais qu’en est-il de Python ? L'exécution d'un programme Python (script) commence normalement à la ligne zéro ou au niveau d'indentation du programme 0. Cependant, la création d'une variable __name__ se produit avant l'exécution d'un programme Python. Cette variable peut être utilisée pour remplacer la méthode main en Python.