[Python débutant] Si __name__ == Déplacez votre main pour comprendre '__ main__'.

que vas-tu faire

ʻSi \ _ \ _ nom \ _ \ _ == '\ _ \ _ main \ _ \ _': ` J'ai expérimenté comment la sortie change en 4 étapes + 2 étapes.

Cette fois, je vais montrer le comportement lors de l'exécution de .py indirectement avec un outil tel que "spyder" qui est souvent utilisé par les débutants.

Si vous souhaitez exécuter «$ python XXX.py» directement dans le terminal, consultez les détails de <Article de référence> au bas de cet article.

Entraine toi

__name__

1. D'abord, écrivez une fonction qui print ('Hello!') Et enregistrez-la sous "hello.py".

Exemple 1_hello.Définir py


#hello.py
def function():
    print('Hello!')

2 . Essayez d'importer "hello.py" avec le prochain nouveau fichier .py

Exemple 2_hello.import py


import hello
hello.function()

#Contenu de sortie
#--------------------
# Hello!
#--------------------

↓ Vous pouvez voir que la fonction a été exécutée.

3 Modifiez \ .hello.py et essayez de sortir \ _ \ _ nom \ _ \ _ ensemble

Exemple 3_ajouter un nom


#hello.py
def function():
    print('Hello!')
    print(' __name__Ensuite, ce qui est affiché..!? -->' ,  __name__)

4 . Lorsque j'essaye à nouveau d'importer ...

Exemple 4_hello.Essayez d'exécuter py


import hello
hello.function()

#Contenu de sortie
#--------------------
#Hello!
#__name__Ensuite, ce qui est affiché..!? --> hello
#--------------------

↓ Dans la partie \ _ \ _ nom \ _ \ _, "bonjour" de "hello.py" était affiché!

Conclusion (Qu'est-ce que \ _ \ _ nom \ _ \ _)

Il s'avère que \ _ \ _ nom \ _ \ _ contient le nom du module `` bonjour '' du module importé'hello.py'.

__main__

Ensuite, modifiez hello.py et ajoutez \ _ \ _ main \ _ \ _.

Exemple 1_Mettez "Sato" dans le principal.


#hello.py
def function(name):
    print('Hello!',name)
    print('Au fait__name__Le contenu est-->',__name__)

if __name__ == '__main__':
    print('La fonction dans main est-elle exécutée?..?',function('Sato'))

Essayez d'exécuter hello.py.

Exemple 2_Afficher "Tanaka"


import hello
hello.function('Tanaka')
#Contenu de sortie
#--------------------
#Hello! Tanaka
#Au fait__name__Le contenu est--> hello
#--------------------

↓ \ _ \ _ Name \ _ \ _ est resté le nom du module hello '' du module hello.py ''. Par conséquent, le contenu de ʻif name == '__ main __': `(préparé" Sato ") n'a pas été exécuté même s'il était dans function ().

Conclusion (Qu'est-ce que \ _ \ _ main \ _ \ _)

En définissant ʻif name == '__ main __': `, il s'avère que le \ _ \ _ main \ _ \ _ suivant n'est pas exécuté.

Résumé

Écrivez la partie qui ne doit pas être exécutée lors de l'importation sous ʻif name == '__ main__': `.

référence [Python] if name == Qu'est-ce que «__ main__» :?

Recommended Posts

[Python débutant] Si __name__ == Déplacez votre main pour comprendre '__ main__'.
Déplacez votre main pour comprendre la distribution du chi carré
Python "if __name__ ==‘ __main__ ’:" signifie
[Python] si __name__ == Qu'est-ce que «__ main__»:?
Si __name__ == Levez la main, si vous écrivez le code sous '__ main__'
[Cours supplémentaire] Si __name__ == Si vous écrivez le code sous «__ main__», levez la main.
Outil de déplacement de répertoire vers le package Python (pycd)
[Python] Présentez UIKit3 au projet Django
Vous voulez ajouter des indices de type aux décorateurs Python?
Jeu à la main en Python (notation sur une ligne de if)
Liste de code Python à déplacer et à mémoriser
[Python] Faites de votre mieux pour accélérer SQL Alchemy
[Introduction à Python] Quel est l'important "if __name__ == '__ main__':" lorsqu'il s'agit de modules?