Python Language Test de "__main__" pour éviter l'exécution de code inattendue


Exemple

Il est __name__ de __name__ variable __name__ du programme appelant avant d'exécuter votre code.

import sys

def main():
    # Your code starts here

    # Don't forget to provide a return code
    return 0

if __name__ == "__main__":
    sys.exit(main())

L'utilisation de ce modèle garantit que votre code n'est exécuté que lorsque vous vous attendez à ce qu'il soit; Par exemple, lorsque vous exécutez explicitement votre fichier:

python my_program.py

L'avantage, cependant, vient si vous décidez d' import votre fichier dans un autre programme (par exemple, si vous l'écrivez dans le cadre d'une bibliothèque). Vous pouvez ensuite import votre fichier et le piège __main__ garantira qu'aucun code n'est exécuté de manière inattendue:

# A new program file
import my_program        # main() is not run

# But you can run main() explicitly if you really want it to run:
my_program.main()