Another benefit is re-usability. If you want your program to be callable as module or script from elsewhere without going through the tedious shell functions, "def main()" is the only way to go.
if __name__ = "__main__":
mainMethod()Of course I could just use a real debugger...