On Fri, Nov 13, 2020 at 05:59:29AM -0400, André Roberge wrote: > As a goal of making it even more obvious what the (new) idiom mans, I would > suggest a variable named __imported__ with the opposite value to what is > proposed.
What if you import the `__main__` module? What does `__imported__` say now, and how do you check for "running as a script" if `__main__` has imported itself -- or some other module has imported it? Is this `__imported__` variable *instead of* or *as well as* the proposed `__main__`? Below, I'm going to assume this variable is addition to the proposed `__main__`. If that's not the case, and instead this is just a change of spelling, my comments below are probably irrelevant. > Thus, > > if not __imported__: > > would behave the same as the proposed > > if __main__: So now we have three idioms for precisely the same thing. That's not merely three alternative calculation methods, like we might have here: result = x**2 + 5*x result = x*x + 5*x result = x*(x + 5) but three special purpose idioms which were intentionally created to mean the same thing. I hope you have a StackOverflow account so you will be around to answer the many questions asking what the difference between them are. I don't know about you, but I never remember what are the differences between `type(obj)` and `obj.__class__`. So I'm sure people will have the same problem here. Might I suggest this? "The `__name__ = ...` idiom is the legacy method. It will never go away because of backwards compatibility, and also because it is useful for a module to check its own name for other purposes. "The `__main__` variable is there as a shortcut. "And the `__imported__` variable is there because the Python core developers think that there is a large number of Python users who can't work out how to use `not` to flip a boolean flag." *wink* -- Steve _______________________________________________ Python-ideas mailing list -- python-ideas@python.org To unsubscribe send an email to python-ideas-le...@python.org https://mail.python.org/mailman3/lists/python-ideas.python.org/ Message archived at https://mail.python.org/archives/list/python-ideas@python.org/message/ACTQZ3IIR4IPBTPLZAZ4SS5JR7R2HFNO/ Code of Conduct: http://python.org/psf/codeofconduct/