Booleans (was: Conditional operator in Python?)

Erik Max Francis max at alcyone.com
Fri Apr 6 17:01:44 EDT 2001


Steve Holden wrote:

> > I'm actually surprised nothing like that already exists in the
> > language
> > (maybe it does and I'm just missing it), since being able to test
> > for
> > truth in the same way that if ...: would seem a common application.
>
> ...since operator.truth() already does it. See, the time machine flies
> into
> action yet again! Guido *knew* you would want this. Can we take it you
> are
> mollified?

Well, there you go.  I said maybe it was there and I was missing it.

> I believe it has now been pointed out several times that this
> would*not* be
> equivalent to the C conditional operator, because it evaluates both
> expressions before selecting them according to the truth value. Close,
> but
> no cigar.

Yes, that's true.  It's certainly good enough for most purposes, though,
where either the expressions don't have side effects or if they do you
expect them both to be evaluated anyway.  I primarily wanted to use the
functional for switching between simple values, viz.:

    print "The flag is %s" % ['false', 'true'][bool(flag)]

> Anyone who has messed around with multi-valued logics (even the
> three-valued
> TRUE, FALSE, NULL of SQL) will tell you that you had better sharpen
> your
> mind before you tangle with them. The law of the divided middle is so
> ensconced in most people's thinking that it's *very* difficult to chop
> N-valued logic where N>2.

Sure.  Another reason why there's no reason for it to be included in the
language proper.

-- 
 Erik Max Francis / max at alcyone.com / http://www.alcyone.com/max/
 __ San Jose, CA, US / 37 20 N 121 53 W / ICQ16063900 / &tSftDotIotE
/  \ 'Tis man's to fight, but Heaven's to give success.
\__/ Homer
    Crank Dot Net / http://www.crank.net/
 Cranks, crackpots, kooks, & loons on the Net.



More information about the Python-list mailing list