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()