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

Reply via email to