Steven D'Aprano wrote:
On Mon, 12 Jul 2010 19:28:28 -0600, Ian Kelly wrote:

On Mon, Jul 12, 2010 at 6:18 PM, Steven D'Aprano
<st...@remove-this-cybersource.com.au> wrote:
I prefere to explicitly write what I want to test:

if myInt <> 0:
I would argue against that. Why do you, the coder, care about the
specific details of treating ints in a boolean context? The int type
itself knows, leave the decision to it.
I think you're missing the point.  He's not using ints in a boolean
context.  If it were a boolean context, he would be using bools in the
first place.

Of course he is -- he's branching on an int (a boolean context), and explicitly writing out the test as myInt <> 0. In fact, that test could just as easily be written as bool(myInt), which has the benefit of being even more explicit that you want a bool.

I never use integers as boolean value. There is no need to in python, since True and False are available. I use integers only as integers (hope you see what i mean, i.e to count a number of...).
Knowing that, the only meaning possible would be

if myInt:

equals to

if myInt is not None:

in other words, if myInt is a meaningful integer.

But this is wrong in python, as "if myInt" means "if myInt <>None and myInt <>0" (I experienced bug because of my wrong understanding). Fine I can live with that. It forces me to write explicitly the condition I require, which is a good thing (explicit >> implicit).

JM

PS : you made a typo, myInt <> 0 does not equal to bool(myInt) (when myInt is None)


--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to