"Brett Hoerner" <[EMAIL PROTECTED]> writes: > Wouldn't the standard idiom be to actually put the code under the > if-name, and not make a whole new main() function?
Depends on how big the main() function is. By making it a function, you make it possible for other modules to run it directly. In particular, if foo.py goes into the python library, then "foo" can be: #!/usr/bin/env python from foo import main main() which means your main gets the (rather trivial) benefit of being precompiled. > I'm not sure I see the reason behind main(), couldn't that also > interfere with other modules since main() seems like it might be > common, not sure how it would work as I'm pretty new to Python myself. > from script import * ... what happens when you have two main()s? You can't have two main()s. You can *define* two main()s, but only one of them can be bound to that name. So yes, if you do "from foo import *", then you can lose the binding to one of the mains. But if your code isn't in a routine, you can't get to it by name anyway. In any case, "from foo import *" is frowned upon - it makes it hard to figure out where the variables in the namespace you do that in came from. <mike -- Mike Meyer <[EMAIL PROTECTED]> http://www.mired.org/home/mwm/ Independent WWW/Perforce/FreeBSD/Unix consultant, email for more information. -- http://mail.python.org/mailman/listinfo/python-list