Pourquoi l'instruction main () -if de Python est-elle attachée?

Qu'est-ce que Python name?

ʻSi nom == "main": ` Une ligne qui apparaît souvent dans le code source Python Vous pouvez vous en débarrasser avec "magie" À quoi cela sert-il?

Par exemple, supposons que vous créez un fichier appelé «helloWorld.py».

helloWorld.py


def main():
    print("Hello Python!")
#Principale
main()

Plus tôt ʻSi name == Il n'y a pas de description de "main" `

$ python helloWorld.py
Hello Python!

Le résultat de l'exécution est obtenu. Cependant, dans cette configuration, même si ʻimport` est fait

>>> import helloWorld #À ce stade, "Bonjour Python!Est affiché
Hello Python!

Donc, je ne veux pas simplement importer un fichier Python et essayer de réutiliser la fonction principale, mais l'exécution est égoïste. Donc

def main():
    print("Hello Python!")

# main()Insérez une ligne avant
if __name__ == "__main__":
    main()

L'intérieur de cette instruction if n'est pas exécutée lors de son importation.

>>> import helloWorld
>>>

Pourquoi l'importation ne s'exécute pas

--Si vous importez helloWorld:

ʻSi name == Dans la variable namede "__main__" Contient le nom du module de ce fichier Python sous forme de chaîne. En d'autres termes Le contenu dename est la chaîne de caractères" helloWorld "` Il est devenu.

Dans helloWorld.py La variable __name__ est la chaîne" __main__ " Sera.

Résumé

  1. Dans le fichier helloWorld.py qui importe helloWorld La chaîne sera __name__ =="helloWorld".

  2. Dans le helloWorld.py qui était python hello.py La chaîne est __name__ =="__main__".

Par conséquent, il est possible de l'empêcher de se déplacer sans permission simplement par ʻimport`! Voilà pourquoi. Hmmm, Python est profond. Il y a beaucoup de place à apprendre.

Recommended Posts

Pourquoi l'instruction main () -if de Python est-elle attachée?
Que faire si vous obtenez moins zéro en Python
Que se passe-t-il si vous "importez A, B comme C" en Python?
Si vous rencontrez une "erreur de décodage Unicode" en Python
[Version Python] Pourquoi ne pouvez-vous pas faire de développement orienté objet avec Java?
Si vous écrivez TinderBot en Python, elle peut le faire
Avez-vous besoin de Python re.compile?
Si vous souhaitez affecter une exportation csv à une variable en python
Vérifiez si vous pouvez vous connecter à un port TCP en Python
Faites une visite Euler non récursive en Python
Python / dictionary> setdefault ()> Ajouter si pas dans le dictionnaire
[Principes de base de Python] Pourquoi __name__ == "__main__"
Instruction Python if
[Python] instruction if
Que faire s'il y a un décimal dans python json .dumps
Si vous voulez un singleton en python, considérez le module comme un singleton
Que faire si vous ne pouvez pas utiliser la recherche de grille de sklearn en Python
Python - Comment diviser une liste en morceaux de taille égale en Python?
Pour ajouter un module à python que vous mettez dans Julialang
Pourquoi vous êtes intéressé par le contrôle moteur en Python
Que faire si vous obtenez une erreur "Aucune version trouvée" sur pipenv
Une solution si vous supprimez accidentellement l'interpréteur python dans / usr / local / bin /.
Si vous les gars dans la cuisine de portée pouvez le faire avec une marge ~ ♪
Que faire si une erreur de codage Unicode se produit dans Sublime Text Python
Que faire si vous obtenez «Python non configuré». Utilisation de PyDev dans Eclipse
Instruction if de base Python
Vérifiez si la chaîne est un nombre en python
% Et str.format () en Python. Lequel utilisez-vous?
BigQuery - Si vous obtenez une erreur Reason: responseTooLarge en Python
Que faire si une erreur de décodage Unicode se produit dans pip
Jusqu'à ce que vous insériez des données dans une feuille de calcul en Python
Un programmeur Java a étudié Python. (for, if, while instruction)
Lorsque vous voulez plt.save dans l'instruction for
Que faire quand "Aucun noyau pour le langage python trouvé" apparaît dans Hydrogen
Que faire si vous obtenez une erreur lors de l'importation de matplotlib en Python (Mac)
Comprendre le rendement Python Si vous mettez le rendement dans une fonction, elle se transforme en générateur
Que faire si vous exécutez python sur IntelliJ et quittez avec une erreur
Prendre une capture d'écran en Python
Que faire lorsque ʻarguments [0] .scrollIntoView (); `échoue dans python sélénium
Créer une fonction en Python
Créer un dictionnaire en Python
Python "if __name__ ==‘ __main__ ’:" signifie
Que faire si pip donne une DistributionError dans Homebrew
Comment importer des fichiers où vous le souhaitez en Python
Créer un environnement de développement Python avec Eclipse (ajouter un éditeur HTML)
[Python] Comment écrire une instruction if en une phrase.
Comment définir plusieurs variables dans une instruction Python for
Que faire si Combinaisons devient «couverture inconnue»
Ajouter avec Python if instruction
Ce qui est plus rapide à utiliser l'instruction if ou le type de dictionnaire lors de la conversion d'une chaîne (a-> b) en Python
Que faire si une erreur 0xC0000005 se produit dans tf.train.start_queue_runners ()
[Route vers Python intermédiaire] Utiliser l'instruction if dans la notation d'inclusion de liste
Faites quelque chose comme un interpréteur Python avec Visual Studio Code
Créer un bookmarklet en Python
Que faire lorsque swagger-codegen est terminé avec python et Erreur d'importation: aucun module nommé n'apparaît
Que faire si vous ne pouvez pas vous connecter en tant que root
Dessinez un cœur en Python
Que faire si vous obtenez une erreur Impossible de récupérer le lien métallique pour le référentiel avec yum
Un ensemble de fichiers de script qui font wordcloud avec Python3