On Tue, 13 Jul 2010 08:05:24 am Nick Coghlan wrote:
> On Tue, Jul 13, 2010 at 7:47 AM, Fred Drake <fdr...@acm.org> wrote:
> > On Mon, Jul 12, 2010 at 5:42 PM, Michael Foord
> >
> > <fuzzy...@voidspace.org.uk> wrote:
> >> I'm sure Brett will love this idea, but if it was impossible to
> >> reimport the script being executed as __main__ with a different
> >> name it would solve these problems.
> >
> > Indeed!  And I'd be quite content with such a solution, since I
> > consider scripts and modules to be distinct.
>
> And here I've been busily blurring that distinction for years ;)
>
> (actually, the whole "name == '__main__'" idiom meant the distinction
> was already pretty blurry long before I got involved)

I would hate it if that distinction was un-blurred. Most of my modules 
include a section "if __name__ == '__main__': run_tests(), and some of 
them do significantly more than that. A few of them import themselves 
so they can pass the module object to another module.


> I take it the concrete proposal here is if the filename of a new
> module matches either __main__.__file__ or __main__.__cached__, then
> that module should be ignored completely for import purposes allowing
> a module with the same name later on sys.path to be found?
>
> I'm not sure I like that, I'd be more inclined to just return the
> __main__ module in that case rather than letting the search continue
> further down sys.path (although I agree the current semantics of
> getting two copies of the same module under different names in this
> case are less than ideal).

Yes, that's a weird corner case. I don't see any advantage to keeping 
that behaviour.



-- 
Steven D'Aprano
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to