[Python-Dev] Adding a conditional expression in Py3.0

Guido van Rossum guido at python.org
Tue Sep 20 18:04:53 CEST 2005

On 9/20/05, Michael Hudson <mwh at python.net> wrote:
> Guido van Rossum <guido at python.org> writes:
> > On 9/19/05, Raymond Hettinger <raymond.hettinger at verizon.net> wrote:
> >> I propose that in Py3.0, the "and" and "or" operators be simplified to
> >> always return a Boolean value instead of returning the last evaluated
> >> argument.
> >
> > While you're at it, maybe we should switch to && and || as well?
> > That's another thing I always mistype when switching between
> > languages...
> You're joking, surely?

I wasn't, but I wasn't pushing for it either. Consider it withdrawn
given the response.

> > Also, this proposal needs to be considered together with the addition
> > of a proper conditional operator, like x?y:z.
> I think this discussion has been had before, you know.

Unfortunately, if we were to accept Raymond's proposal, we'd have to
revisit the discussion, since his proposal removes several ways we
currently avoid the need.

In fact, I think Raymond's example is more properly considered an
argument for adding a conditional expression than for removing the
current behavior of the and/or shortcut operators; had we had a
conditional expression, he wouldn't have tried to use the "x and y or
z" syntax that bit him.

Given this realization, I'm now -1 on Raymond's idea, and +1 on adding
a conditional expression. I believe (y if x else z) was my favorite
last time, wasn't it? I've changed the subject accordingly.

--Guido van Rossum (home page: http://www.python.org/~guido/)

More information about the Python-Dev mailing list