Import collisions (was Re: "from module import data; print(data)")

Chris Angelico rosuav at gmail.com
Wed Feb 24 20:19:20 EST 2016


On Thu, Feb 25, 2016 at 12:07 PM, Dan Stromberg <drsalists at gmail.com> wrote:
> PS: Haskell seems better at the former than Python; Haskell tells you
> if you import two identical symbols from two different places, when
> you try to use one of them - not at import time.  I believe in Python,
> whichever symbol you import last, wins.  Haskell does not warn you at
> import time, which is fine.  Not sure about OCaml or whatever else.

In a sense, it's not the two imports that matter, but the situation
that the second import statement is rebinding a name. Would it be
possible to create a "mollyguard" import hook that snoops the globals
of the importing module and raises an ImportWarning if it detects a
rebind?

Not that I've ever been in the situation of wanting one, but just as a
point of intellectual curiosity.

ChrisA


More information about the Python-list mailing list