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