On 01/23/2012 06:05 PM, Evan Driscoll wrote:
To play devil's advocate for a moment, if you have the choice between
two ways of writing something, A and B, where both are basically the
same in terms of difficulty to write, difficulty to maintain, and
difficulty to understand, but A is faster than B, even if just by a
hair, why NOT write A?
It's like 'iter++' vs '++iter' in a C++ for loop. For ints, or for
some iterators with optimization, it makes no difference. But the
latter will be faster in debug builds, and *might* be faster in
release builds if you have a complicated iterator. So why NOT make
for(...; ...; ++i) the typical way of writing a for loop?
In the Python world, is 'while 1' any harder to understand than 'while
True'? I'm about as staunch a supporter as you'll find for the idea
that 'while 1' should throw an exception, and even *I* think that
'while 1' is about the least-offensive idiom out there. If 'while 1'
throws you off, I'd hate to see what you do when you learn that Python
accepts loops like 'while x' where the condition evaluates to true if
x is a non-zero integer and false if x is 0.
All that said, I like the 'while "stuff to do"' idea.
Evan
I think it's not the same, iter++ or ++iter is exactly the same in terms
of readability, so of course
if one might be a bit faster, it should be used.
while 1 works because the 1 is converted to boolean automatically, but
why not just writing a boolean
in the first place?
It's not bad of course but to me it's not very Pythonic, and reminds me C.
At that point I also prefer the "while 'might be long loop'" idea, which
at least
adds some value *and* it might be very slightly faster too.
--
http://mail.python.org/mailman/listinfo/python-list