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

Reply via email to