Reserving main is definitely more hacky. Try compiling multiple objects with main defined into a single binary - it won’t go well. This can make a lot of testing libraries rather convoluted, since some want to write their own main while others want you to write it because require all kinds of macros or whatever.
On the other hand, if __name__ == "__main__" very gracefully supports having multiple entrypoints in a single module as well as derivative libraries.
Reserving
main
is definitely more hacky. Try compiling multiple objects withmain
defined into a single binary - it won’t go well. This can make a lot of testing libraries rather convoluted, since some want to write their ownmain
while others want you to write it because require all kinds of macros or whatever.On the other hand,
if __name__ == "__main__"
very gracefully supports having multiple entrypoints in a single module as well as derivative libraries.