On Tue, Jul 13, 2010 at 05:48, Nick Coghlan <ncogh...@gmail.com> wrote:

> On Tue, Jul 13, 2010 at 10:37 AM, Alexander Belopolsky
> <alexander.belopol...@gmail.com> wrote:
> > In my experiments, 0 is not equivalent to None:
> >
> >>>> import sys, time
> >>>> sys.modules['time'] = 0
> >>>> __import__('time')
> > 0
> >>>> sys.modules['time'] = None
> >>>> __import__('time')
> > Traceback (most recent call last):
> >  File "<stdin>", line 1, in <module>
> > ImportError: No module named time
> >
> >  Am I missing something?
>
> I don't think so. I suspect I got away with this mistake because the
> imports I was trying to block in the test suite were all C
> acceleration imports of the form "from <module> import *", and those
> will blow up anyway since zero doesn't have __dict__ or __all__
> attributes.
>

Nick's right; 0 fails on an import * to pull anything in of interest. And as
I said on python-checkins -- you can ignore that email, Alexander -- there
is a historical reason because in Python 2 if you tried an implicit relative
import a value of None met to do an absolute import. This doesn't have that
effect in py3k as explicit relative imports are the only way to do relative
imports (and luckily importlib does the proper thing for this as well =).
_______________________________________________
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