Chris Angelico wrote:
On Sun, Jan 22, 2012 at 12:47 AM, Andrea Crotti
<andrea.crott...@gmail.com> wrote:
So I tried to do the following, and the result is surprising.  For what
I can see it looks like the interpreter can optimize away the 1 boolean
conversion while it doesn't with the True, the opposite of what I
supposed.

Anyone can explain me why is that, or maybe is my conclusion wrong?

In Python 3, they compile to the same code, because 'True' is a
keyword. In Python 2, you can reassign True to be 0.

Why this should concern anyone, I don't know; someone who's rebound `True` or `False` to evaluate to something other than true and false, respectively, is only doing so to be difficult (or very foolish). One of the principles of Python programming is that We're All Adults Here, so this kind of defensive programming is really superfluous. In other words, yes, it's quite reasonable to assume that (even in Python 2) `True` is bound to something which is, in fact, true.

The real reason people still use the `while 1` construct, I would imagine, is just inertia or habit, rather than a conscious, defensive decision. If it's the latter, it's a case of being _way_ too defensive.

--
Erik Max Francis && m...@alcyone.com && http://www.alcyone.com/max/
 San Jose, CA, USA && 37 18 N 121 57 W && AIM/Y!M/Jabber erikmaxfrancis
  Ambition can creep as well as soar.
   -- Edmund Burke
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to