On 4/22/07, Jim Jewett
On 4/21/07, Brett Cannon
wrote: On 4/21/07, Josiah Carlson
wrote: After reading other posts in the thread, I'm going to put my support into the sys.main variant. It has all of the benefits of the builtin __name__ == __main__, with none of the drawbacks (no builtin!), and only a slight annoyance of 'import sys', which is more or less free.
Yeah, I am starting to like it as well. Steven and Jim, what do you think?
Better than adding a builtin.
I'm not sure I like the idea of another semi-random object in sys either, though.
(1) One of the motivations was importing. It looks like __file__ already has sufficient information. I understand that relying on it (or on __package__?) seems a bit hacky, but is it really worse than adding something?
Yes, because you have no guarantee __file__ will in any way be unique or even defined (look at 'sys'). It's up to the loader to set __file__ and it can do whatever it wants. This doesn't happen with __name__ since it is rather clear what that should be no matter where the module was loaded from (unless it was a Python file specified at the command line in some random directory). -Brett