2009-12-29 4 views

Répondre

9

Ce sera le cas si ce module est exécuté en tant que programme autonome. De cette façon, quelque chose peut agir soit comme un module importé par un autre programme, soit comme un programme autonome, mais seulement exécuter le code dans l'instruction if s'il est exécuté en tant que programme.

4

Ceci est une vérification pour voir si vous exécutez directement le script ou s'il est inclus dans une bibliothèque.

Lorsque vous exécutez un script python comme ceci:

python myScript.py 

Il envoie un paramètre, vous indiquant d'exécuter les programmes première méthode, qui est appelée largement « principale », donc quand __name__ est __main__-vous que le programme a été exécuté à partir d'une ligne de commande ou double-cliqué.

1

Il a écrit un module python, destiné à être utilisé via import.

Si le module est transmis à l'interpréteur en tant que script python principal, le code que vous citez sera exécuté. Cela appellera la méthode interact() sous le débogueur Python.

13

__name__ est une variable automatiquement définie dans un programme python en cours d'exécution. Si vous import votre module d'un autre programme, __name__ sera défini sur le nom du module. Si vous exécutez votre programme directement, __name__ sera défini sur __main__.

Par conséquent, si vous voulez des choses à se produire que si vous utilisez votre programme à partir de la ligne de commande et non importés (par exemple. Tests unitaires pour une bibliothèque), vous pouvez utiliser le

if __name__ == "__main__": 
    # will run only if module directly run 
    print "I am being run directly" 
else: 
    # will run only if module imported 
    print "I am being imported" 

astuce. C'est un idiome de Python commun.