python Remarque: Modularisation: __name__ == Comment utiliser '__ main__'

Motivation

Souvent vu dans les scripts python,

pseudo.py


if __name__ == '__main__':

Je ne savais pas ce que c'était.

modularisation

Je l'ai utilisé comme référence. http://programming-study.com/technology/python-if-main/

En python, vous tirez et utilisez souvent quelque chose de défini dans d'autres scripts. Importez la bibliothèque. C'est également utile lorsque vous souhaitez le faire éventuellement (bien que ce ne soit pas possible maintenant) en mettant la fonction que vous avez définie dans un autre script et en l'important en tant que module.

\ _ \ _ Nom \ _ \ _ ci-dessus si est une variable qui est automatiquement créée lorsque le script est exécuté, et lorsque le script est exécuté directement, \ _ \ _ nom \ _ \ _ est \ _ \ _ main \ _ Le nom \ _ est stocké.

En d'autres termes, l'instruction if ci-dessus se ramifie selon que le script a été exécuté directement à partir du shell.

Comme indiqué ci-dessous, j'ai écrit un script contenant des instructions d'exécution à l'intérieur et à l'extérieur de l'instruction if.

name_is_main.py


def func(a,b):
  return a + b

print('MY NAME IS ' + __name__)

if __name__ == '__main__':
  print('hello!')
  print(func(3,4))

Résultat de l'exécution: MY NAME IS __main__ hello! 7

name_is__not_main.py


import name_is_main as nim

print('my name is' + __name__)

if __name__ == '__main__':
  print('world!')
  print(nim.func(7,8))

Résultat de l'exécution: MY NAME IS name_is_main my name is __main__ world! 15

Dans name \ _is \ _main.py, \ _ \ _ main \ _ \ _ a été entré dans \ _ \ _ name \ _ \ _ tel quel, et le contenu de l'instruction if a également été exécuté.

Dans name \ _is \ _ not \ _main.py, l'instruction d'impression en dehors de l'instruction if du nom importé \ _is \ _main.py a également été exécutée. Dans le nom importé \ _is \ _main.py, le nom du script \ _is \ _main est stocké dans \ _ \ _ nom \ _ \ _. D'autre part, \ _ \ _ main \ _ \ _ était stocké dans \ _ \ _ nom \ _ \ _ du nom \ _is \ _ pas \ _main.py lui-même.

Comme mentionné ci-dessus, s'il y a une description supplémentaire dans le script importé, elle sera exécutée sans autorisation du côté importateur.

utilisation?

Sur le site auquel j'ai fait référence, il a été introduit d'écrire un script pour tester le fonctionnement du module comme une utilisation de if \ _ \ _ name \ _ \ _ == \ _ \ _ main \ _ \ _:. C'était. Je vois.

Comment est-il utilisé en dehors des tests?

Lorsque vous écrivez un script que vous n'avez pas l'intention de modulariser, que faites-vous si vous obtenez "Je pense que cette fonction peut être utilisée ailleurs, alors pensez à la modularisation ..."? À ce stade, déplacez-vous la fonction vers un autre script, ou décidez-vous d'utiliser une instruction if comme celle ci-dessus et de la laisser telle quelle dans le script?

Recommended Posts

python Remarque: Modularisation: __name__ == Comment utiliser '__ main__'
Comment installer Python
Comment installer python
[2020.8 dernière] Comment installer Python
Comment obtenir le nom de la variable lui-même en python
Comment installer Python [Windows]
python3: Comment utiliser la bouteille (2)
Notes Python à oublier bientôt
[Python] Comment utiliser la liste 1
Comment mettre à jour Tkinter de Python vers la version 8.6
Comment utiliser Python Argparse
Python: comment utiliser pydub
[Python] Comment utiliser checkio
Comment exécuter Notepad ++ Python
Comment changer la version de Python
Comment développer en Python
[python] Comment juger scalaire
[Python] Comment utiliser input ()
Comment utiliser Python lambda
[Python] Comment utiliser virtualenv
python3: Comment utiliser la bouteille (3)
python3: Comment utiliser la bouteille
Comment utiliser les octets Python
[Hyperledger Iroha] Remarques sur l'utilisation du SDK Python
Comment installer Python à l'aide d'Anaconda
[Python] Comment FFT des données mp3
Python: comment utiliser async avec
[Python] Comment utiliser la série Pandas
Comment collecter des images en Python
Comment utiliser les requêtes (bibliothèque Python)
Comment utiliser SQLite en Python
[Introduction à Python] Comment analyser JSON
Remarques sur l'utilisation de pywinauto
Comment obtenir la version Python
Remarques sur l'utilisation des featuretools
Comment démarrer avec Python
[Python] Comment utiliser la liste 3 Ajouté
Comment utiliser Mysql avec python
Comment utiliser l'API Python d'OpenPose
[Python] Comment permuter les valeurs de tableau
Comment envelopper C en Python
Comment utiliser ChemSpider en Python
Python: Comment utiliser pydub (lecture)
Comment utiliser PubChem avec Python
Comment accélérer les calculs Python
Comment calculer la date avec python
Comment accéder à wikipedia depuis python
Comment utiliser la fonction zip de python
[Nanonets] Comment publier un mémo [Python]
Remarques sur la rédaction de requirements.txt
Comment gérer le japonais avec Python
[Python] Comment utiliser l'API Typetalk
Comment empaqueter et distribuer des scripts Python
[Introduction à Python] Comment utiliser la classe en Python?
Qiita (1) Comment écrire un nom de code
Comment lire pydoc sur l'interpréteur python