[Python-ideas] Programming recommendations (PEP 8) and boolean values
Oleg Broytman
phd at phdru.name
Thu Aug 9 11:36:48 CEST 2012
On Thu, Aug 09, 2012 at 01:15:38PM +1000, Ben Finney <ben+python at benfinney.id.au> wrote:
> Oleg Broytman <phd at phdru.name> writes:
> > On Thu, Aug 09, 2012 at 02:18:53AM +1000, Ben Finney <ben+python at benfinney.id.au> 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 at phdru.name
Programmers don't die, they just GOSUB without RETURN.
More information about the Python-ideas
mailing list