[Python-Dev] "and" and "or" operators in Py3.0

Michael Hudson mwh at python.net
Wed Sep 21 11:39:29 CEST 2005

Brett Cannon <bcannon at gmail.com> writes:

> On 9/20/05, Michael Hudson <mwh at python.net> wrote:
> [SNIP]
>> I _like_ the explanation of 'and' and 'or' as they are now.  They are
>> basically control flow constructs -- and have to be to get
>> short-circuiting to work -- and adding a coercion to bool at the end
>> seems to add complexity, not reduce it (on some levels, anyway).
> If you change the definition of 'and' and 'or' to be boolean
> comparison operators (as Raymond is proposing) and not as control flow
> constructs then is it really that complicated?

If you eliminate the short circuiting behaviour of 'or' and 'and' the
mobs will be after you with torches and pitchforks (and I'll be with

> I think it would actually simplify things very slightly since you
> just say a boolean is returned instead of the last executed
> expression by the operator.

You might as well have 'and' be a builtin, then -- or do I misread

>> > P.S.  Simplifying "and" and "or" may create a need to introduce a
>> > conditional operator but that is a discussion for another day.
>> ... which was in the past, I thought.
> It was, but changing 'and' and 'or' does tweak the usefulness of a
> conditional operator.

Another reason why it's a bad idea :) <wink>


  I've reinvented the idea of variables and types as in a
  programming language, something I do on every project.
                                          -- Greg Ward, September 1998

More information about the Python-Dev mailing list