Question About Logic In Python

Steven D'Aprano steve at REMOVETHIScyber.com.au
Tue Sep 20 18:56:11 EDT 2005


On Mon, 19 Sep 2005 22:31:05 +0000, Bengt Richter wrote:

> On Mon, 19 Sep 2005 23:46:05 +1000, Steven D'Aprano <steve at REMOVETHIScyber.com.au> wrote:

>>Are there actually any usage cases for *needing* a Boolean value? Any
>>object can be used for truth testing, eg:

[snip]

> making an index (it's an int subclass), as in
> 
>  >>> things = None, 0, 1, 0.0, 5.0, '', 'a', [], [1], {}, {1:2}
>  >>> for thing in things:
>  ...    print 'if %-6r would act like if %s' % (thing, ('False','True')[bool(thing)])
>  ...

That's a pretty artificial example though. Your general index ranges from
0 to n inclusive, where n is unlikely to be 1. That limits the usefulness
of the idiom sequence_or_mapping[bool(thing)] to a tiny set of cases.

As near as I can tell, explicitly converting objects to booleans is mostly
useful for demonstrating that booleans aren't needed for truth testing.


-- 
Steven.




More information about the Python-list mailing list