[Python-ideas] Just __main__
ned at nedbatchelder.com
Tue Jun 19 02:37:56 CEST 2012
On 6/18/2012 6:39 PM, Matt Chaput wrote:
>> But a __main__ function misses the whole point: that a module can be
>> importable and runnable, and the if statement detects the difference. If
>> you simply want a function that is always invoked as the main, then just
>> invoke it:
>> def main():
>> blah blah
>> No need for special names at all.
> I'm afraid you're the one who's missed the point... the interpreter
> would only call __main__() if __name__ == "__main__"
> Some people will cry "magic", but to me this is about what makes sense
> when you explain it to someone, and I think __main__() makes more
> sense (especially to someone with experience in other languages) than
> "if __name__ == "__main__""
I understand the proposal now, and yes, it is "magic". Explicit is
better than implicit. I like this explanation: "When you run a Python
program, all the statements are run, from top to bottom." better than,
"When you run a Python program, all the statements are run, from top to
bottom, and then if there is a __main__ function (which there need not
be), then it is invoked."
Python is full of constructs that are simpler than other languages,
which when used in conventional ways, act similar to other languages.
No need to complicate things to make it easier for C programmers to
understand. There's a lot they need to get used to in Python, and "if
__name__ == '__main__':" is not difficult.
> Python-ideas mailing list
> Python-ideas at python.org
More information about the Python-ideas