Python __name__ et __main__
Généralement, on voit souvent du code Python comme ceci :
if __name__ == "__main__":
main()
En Python,__name__et__main__sont deux variables spéciales liées à l'exécution des modules et des scripts.
__name__et__main___name__ est généralement utilisé pour contrôler la façon dont le code est exécuté, en particulier lorsqu'un module peut être exécuté à la fois comme script autonome et importé par d'autres modules.
1. La variable __name__
__name__ est une variable intégrée utilisée pour représenter le nom du module courant.
__name__ La valeur de __name__ dépend de la façon dont le module est utilisé :
Lorsque le module est exécuté comme programme principal :__name__la valeur de __name__ est définie sur"__main__"。
Lorsque le module est importé :__name__la valeur de __name__ est définie sur le nom de fichier du module (à l'exclusion de l'extension.py.py).
Supposons qu'il existe un fichier module.py :
print(f"模块的 __name__ 值: {__name__}")La sortie sera :模块的 __name__ 值: __main__
2. La signification de __main__
__main__est une chaîne spéciale utilisée pour indiquer que le module actuel est exécuté comme programme principal.
__main__Il est généralement utilisé avec la variable __name__ pour déterminer si un module est importé ou exécuté comme script autonome.
3. Modèles courants d'utilisation deif __name__ == "__main__":__name__ == "__main__"
En Python, une pratique courante consiste à ajouter le bloc de code suivant à la fin d'un module :
Exemples
# Le code ici ne s'exécutera que lorsque le module est exécuté comme programme principal
main()
Ce modèle permet au module de ne pas exécuter un certain code lorsqu'il est importé, et de n'exécuter ce code que lorsqu'il est exécuté comme script autonome.
Exemple
Supposons que nous ayons un module nommé example.py :
module du fichier example.py :
print("Salutations du module example !")
if __name__ == "__main__":
print("Le script est exécuté directement.")
greet()
else:
print("Le script est importé en tant que module.")
Exécuter example.py directement
Si vous exécutez example.py directement, la sortie sera :
该脚本正在直接运行。 来自 example 模块的问候!
Dans ce cas,__name__la valeur de __name__ est "__main__", donc leif __name__ == "__main__"__name__ == "__main__": le bloc de code sera exécuté.
Importer example.py
Si vous importez example.py dans un autre script, par exemple :
Exemple
import example
example.greet()
La sortie sera :
该脚本作为模块被导入。 来自 example 模块的问候!
Dans ce cas,__name__la valeur de __name__ est"example" (le nom du module), donc leif __name__ == "__main__":__name__ == "__main__" le bloc de code ne sera pas exécuté.
Résumé
__name____name__ est une variable intégrée qui représente le nom du module actuel.Lorsque le module est exécuté comme programme principal,
__name__la valeur de __name__ est "__main__"."__main__"。Lorsque le module est importé,
__name__la valeur de __name__ est le nom de fichier du module.Utilisation
if __name__ == "__main__":__name__ == "__main__" permet de contrôler le module afin qu'un certain code ne soit pas exécuté lorsqu'il est importé, mais qu'il soit exécuté uniquement lorsqu'il est lancé comme script autonome.