On Wed, Jul 5, 2017 at 10:37 AM, David Rock <david.r...@gmail.com> wrote: > This is not a question about using if __name__ == '__main__':. I know > what the difference is between running the script or importing it and > using the value of __name__ to determine behavior. > > This is a question about the benefits of using a main() function vs not. > ie, > > if __name__ == '__main__': > #code goes here > > vs > > > def main(): > #code goes here > > if __name__ == '__main__': > main() > > > 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. -- Zach _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor