Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #15741

Re: suppressing import errors

Subject Re: suppressing import errors
From David Riley <fraveydank@gmail.com>
Date 2011-11-15 16:20 -0500
References (2 earlier) <CAC82khn3WBjXY7podVq6RX0d0j38w1vbtN3fNOCSGLcu2X_jOw@mail.gmail.com> <D97140E4-9B09-4EAE-BB92-0F038FCDBA5A@gmail.com> <4EC2B656.7050902@sequans.com> <0601B8C7-9AEF-443A-A149-0F7D356345EF@gmail.com> <CAPTjJmrP7fMg9UfxdsR=5j6EW4yFKf8gR4xYQD5zDwMUVxdmjw@mail.gmail.com>
Newsgroups comp.lang.python
Message-ID <mailman.2750.1321392038.27778.python-list@python.org> (permalink)

Show all headers | View raw


On Nov 15, 2011, at 3:01 PM, Chris Angelico wrote:

> On Wed, Nov 16, 2011 at 6:39 AM, David Riley <fraveydank@gmail.com> wrote:
>> True, and that does avoid polluting namespace.  However, you shouldn't be testing for None as a bool; you should instead do an "if <module> is None:" (or, of course, "is not None").
> 
> Why not? Is there some other way for the module object to evaluate as false?

Well, probably not.  It was my understanding that "None" evaluating to a Boolean false was not necessarily guaranteed; I've even gotten some warnings from Python to that effect, though I can't recall the context in which that happened.  In any case, PEP 8 states:

      Comparisons to singletons like None should always be done with
      'is' or 'is not', never the equality operators.

      Also, beware of writing "if x" when you really mean "if x is not None"
      -- e.g. when testing whether a variable or argument that defaults to
      None was set to some other value.  The other value might have a type
      (such as a container) that could be false in a boolean context!

Obviously, that last bit doesn't apply to modules; they're not going to evaluate as False in general.  I just bristle when I see people writing "if x" when they really mean "if x is not None", perhaps because it's not The Right Way(tm)?  It mostly comes down to aesthetics, I guess.  Write what you really mean.

- Dave

Back to comp.lang.python | Previous | NextNext in thread | Find similar | Unroll thread


Thread

Re: suppressing import errors David Riley <fraveydank@gmail.com> - 2011-11-15 16:20 -0500
  Re: suppressing import errors Alan Meyer <ameyer2@yahoo.com> - 2011-11-15 17:59 -0500
    Re: suppressing import errors David Riley <fraveydank@gmail.com> - 2011-11-15 18:15 -0500

csiph-web