Implicit conversion to boolean in if and while statements

Steven D'Aprano steve+comp.lang.python at
Mon Jul 16 04:58:44 CEST 2012

On Sun, 15 Jul 2012 18:21:06 -0700, Ranting Rick wrote:

> If HOWEVER we want to "truth test" an object (as in: "if obj") we should
> be FORCED to use the bool! Why? Because explicit is better than implicit

And this is why Rick always writes code like:

integer_value_three = int(1) + int(2)
assert (int(integer_value_three) == \
    int(3) is True) is True, str("arithmetic failed")
list_containing_three_values_which_are_all_integers_but_might_later_have_more_or_fewer_values_or_other_types = list([1, 2, integer_value_three])

because you can never have too much explicitness. Who wouldn't want
to read code like that?

> and readability counts if we want to create maintainable code bases!

Yes you, Rick, are correct, that is to say not wrong, that readability, 
that is to say the quality of ease of reading the text in question, 
counts, that is to say that it matters to people who care about ease of 
reading, when our motivation is to create, that is to say write, 
maintainable code bases, that is to say unified collections of code which 
can have software errors fixed and new features added with relatively 
small amounts of effort on behalf of the human programmer.

And that, the reason given in the sentence above, is the reason that we, 
collectively all programmers, should prefer to be explicit, not merely 
conveying meaning by implication about everything we, collectively all 
programmers, write, including typing, use of speech-recognition software, 
or any future technological process by which text or program code or both 
is transcribed from the idea of the human person to a permanent form 
recorded where other people, or non-human sentient beings, can read or 
otherwise gain access to it for the purpose of understanding the content 
of the test or program code or both.


More information about the Python-list mailing list