Welcome to Software Development on Codidact!
Will you help us build our independent community of developers helping developers? We're small and trying to grow. We welcome questions about all aspects of software development, from design to code to QA and more. Got questions? Got answers? Got code you'd like someone to review? Please join us.
Post History
I often see the construct if __name__ == '__main__' in Python code. For example, the queens.py demo in the Python repository ends with these two lines: if __name__ == "__main__": main() Ho...
#1: Initial revision
What is the purpose of `if __name__ == '__main__'`?
I often see the construct `if __name__ == '__main__'` in Python code. For example, the [`queens.py` demo in the Python repository][queens] ends with these two lines: ```python if __name__ == "__main__": main() ``` However, the [`beer.py` demo][beer] does not. Both run just fine and display things in the console. Moreover, if I remove the `if __name__ == "__main__"` line in `queens.py` (and unindent the call of the `main()` function), it still works, nothing changed. When code is non-functional, I'd rather remove it… So what's the purpose of that construct? When it is useful, and when is it not? [queens]: https://github.com/python/cpython/blob/311910b31a4bd94dc79298388b7cb65ca5546438/Tools/demo/queens.py [beer]: https://github.com/python/cpython/blob/311910b31a4bd94dc79298388b7cb65ca5546438/Tools/demo/beer.py