In article <32615c9a-b983-4399-bb55-6df6c230f...@googlegroups.com>, JL <lightai...@gmail.com> wrote:
> Python scripts can run without a main(). What is the advantage to using a > main()? Is it necessary to use a main() when the script uses command line > arguments? (See script below) > > #!/usr/bin/python > > import sys > > def main(): > # print command line arguments > for arg in sys.argv[1:]: > print arg > > if __name__ == "__main__": > main() No, it's not necessary, but it's a good idea. For one thing, it lets you import your script without actually running it. We recently tracked down a long-standing bug where some maintenance script we had started out with: import os os.environ['DJANGO_SETTINGS_MODULE'] = 'whatever' somebody imported that script in another part of the system because there was some convenient definition that he wanted to reuse. Unfortunately, the act of importing the script changed the environment! The fix was to move the setting of the environment variable to inside the main() routine. If you always follow the rule that you always put all your executable code inside main(), you'll never run into problems like that. -- https://mail.python.org/mailman/listinfo/python-list