>> I personally find using main() cumbersome, but many examples I come >> across use main(). Is there some fundamental benefit to using main() >> that I'm missing? > > In no particular order: testing, encapsulation, and reusability. With > a "main()" function (which, recall, can be named whatever you like; it > doesn't have to be "main") you can directly call the function in your > tests to make sure it acts the way you want. The encapsulation of the > "main" code in a "main()" function also reduces your global state (and > makes global state a bit more difficult to use), which is usually a > good thing. And finally, it makes it possible to use the "main()" > function in some other piece of code that imports it.
I echo Zach. Python's variables are function scoped by default, rather than block-scoped, so variables can be inadvertently introduced that were not intended. e.g.: ############################ >>> if __name__ == '__main__': ... x = 42 ... >>> x 42 ############################ In many other languages, nesting means a new scope. In Python, though, it doesn't, so having the main() function there allows us to impose a scope to avoid polluting the module namespace. _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor