package import dangers
steven at REMOVE.THIS.cybersource.com.au
Wed Oct 7 00:56:06 CEST 2009
On Tue, 06 Oct 2009 18:42:16 +0200, Diez B. Roggisch wrote:
> The most common problem is that a file is used as module and as
> executable at the same time.
> Like this:
> --- test.py ---
> class Foo(object):
> if __name__ == "__main__":
> import test
> assert Foo is test.Foo
> This will fail when executed from the commandline because the module is
> known twice - once as "__main__", once as "test".
Why would a module need to import itself? Surely that's a very rare
occurrence -- I think I've used it twice, in 12 years or so. I don't see
why you need to disparage the idea of combining modules and scripts in
the one file because of one subtle gotcha.
More information about the Python-list