It is good practice to test the calling program's __name__
variable before executing your 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())
Using this pattern ensures that your code is only executed when you expect it to be; for example, when you run your file explicitly:
python my_program.py
The benefit, however, comes if you decide to import
your file in another program (for example if you are writing it as part of a library). You can then import
your file, and the __main__
trap will ensure that no code is executed unexpectedly:
# 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()