Que fait 'if name == "__main__":' ?
Lors de l'exécution d'un script Python en tant que programme principal, il attribue une chaîne codée en dur "__main__" à la variable name. Si le script est importé par un autre module, nom est attribué au nom utilisé pour l'import ; par exemple, si un autre script importe foo.py en tant qu'import foo, alors la variable name dans foo.py devient "foo".
En vérifiant si name est égal à "__main__", il garantit que le code contenu dans le garde n'est exécuté que lorsque le script est exécuté directement, et non lorsqu'il est importé en tant que fichier. module.
Pourquoi est-ce nécessaire ?
L'inclusion de l'instruction if __name__ == "__main__": offre plusieurs avantages :
-
Prévention des exécutions indésirables : Si le script est importé par un autre module, le code contenu dans la garde ne sera pas exécuté, empêchant ainsi l'exécution accidentelle de code.
-
Comportement différent pour différents contextes : Il permet une exécution de code différente en fonction du contexte (exécuté en tant que programme principal ou en tant que module). Par exemple, certaines fonctions peuvent être exécutées uniquement lorsque le script est exécuté directement, ou vous pouvez effectuer des routines d'initialisation ou de configuration uniquement lorsque le script est exécuté en tant que programme principal.
-
Protection contre la spécification arguments : Lors de l'importation d'un script en tant que module, il est possible que le script importé ait son propre code d'analyse des arguments de ligne de commande. La protection if __name__ == "__main__": empêche le script importé de s'exécuter de manière inattendue avec les arguments de ligne de commande du script d'importation.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!