question of style

Simon Forman sajmikins at gmail.com
Sat Jul 4 16:54:38 CEST 2009


On Jul 4, 2:03 am, upwestdon <upwest... at gmail.com> wrote:
> On Jul 2, 1:23 pm, Simon Forman <sajmik... at gmail.com> wrote:
>
>
>
> > Hey I was hoping to get your opinions on a sort of minor stylistic
> > point.
> > These two snippets of code are functionally identical. Which would you
> > use and why?
> > The first one is easier [for me anyway] to read and understand, but
> > slightly less efficient, while the second is [marginally] harder to
> > follow but more efficient.
>
> > ## First snippet
>
> > if self.higher is self.lower is None: return
> > if self.lower is None: return self.higher
> > if self.higher is None: return self.lower
>
> > ## Second snippet
>
> > if self.higher is None:
> >     if self.lower is None:
> >         return
> >     return self.lower
> > if self.lower is None:
> >     return self.higher
>
> > What do you think?
>
> > (One minor point: in the first snippet, the "is None" in the first
> > line is superfluous in the context in which it will be used, the only
> > time "self.lower is self.higher" will be true is when they are both
> > None.)
>
> How about just:
>
> if not (self.higher and self.lower):
>     return self.higher or self.lower

That would work too in this case, both higher and lower are expected
to be either None or an object (that doesn't override the default all-
objects-are-true rule.)

Thanks,
~Simon



More information about the Python-list mailing list