On Thu, Aug 09, 2012 at 01:15:38PM +1000, Ben Finney
Oleg Broytman
writes: On Thu, Aug 09, 2012 at 02:18:53AM +1000, Ben Finney
wrote: What is a compelling use case for checking precisely for True or False?
To distinguish False and None for a tri-state variable that can have 3 values - "yes", "no" and "unspecified" - True, False and None in Python-speak.
Since True and False are strongly coupled with a *two*-state type, that just seems needlessly confusing to the reader of the code. Better to use a non-bool type which makes it explicit that there are three valid values.
I am not always free to use my own classes and values. Sometimes (quite often, actually) I receive values from 3rd-party libraries. Example - DB API drivers: cursor.execute("SELECT boolean FROM mytable") row = cursor.fetchone() Now row[0] is that tri-state variable with possible values 1/0/None or True/False/None. None is of course for SQL NULL. Oleg. -- Oleg Broytman http://phdru.name/ phd@phdru.name Programmers don't die, they just GOSUB without RETURN.