[Python-Dev] Re: Christmas Wishlist (original) (raw)
Edward Loper edloper at gradient.cis.upenn.edu
Mon Dec 15 13:44:56 EST 2003
- Previous message: [Python-Dev] PyCon DC 2004 - Submissions Now Open
- Next message: [Python-Dev] Re: Christmas Wishlist
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Barry Warsaw <barry at python.org> wrote:
Actually, if truth be told, I'd love to just ban local imports. I understand that might be controversial though .
+1 (asuming that you're talking about package-local imports).
I've seen a couple people get bitten by the fact that a module gets loaded twice if there are separate local & global imports for it:
% mkdir pkg
% touch pkg/__init__.py
% cat >pkg/a.py
print 'A is being imported (not re-used)'
class A: pass
% cat >pkg/b.py
from a import A as LocalA
from pkg.a import A as GlobalA
print isinstance(LocalA(), GlobalA)
print isinstance(GlobalA(), LocalA)
% PYTHONPATH=.; python pkg/b.py
A is being imported (not re-used)
A is being imported (not re-used)
0
0
Since pkg/a gets loaded twice, we end up with two versions of class A, which are not compatible. In practice this usually comes up if a package uses local imports between submodules, and then an outside user uses a global import to get a submodule.
-Edward
- Previous message: [Python-Dev] PyCon DC 2004 - Submissions Now Open
- Next message: [Python-Dev] Re: Christmas Wishlist
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]