Python tricks

Robert Latest boblatest at yahoo.com
Mon Jan 12 16:40:47 EST 2009


RajNewbie wrote:
>    Is there a way - a python trick - to have a check such that if the
> loop goes for more than x number of steps, it will cause an exception?
>
>    I do understand that we can use the code like -
>    i = 0
>    while True:
>      i++
>      if i > 200: raise infinite_Loop_Exception
>      ...
>      if <condition>: break
>
>    But I am not very happy with this code for 3 reasons
>    1. Verbosity (i=0 and i++) which doesnt add to the logic
>    2. The loop now has dual focus. - incrementing i, etc.
>    3. <most important>   A person looks into the code and thinks 'i'
> has special significance. His/her mind will be focused on not the
> actual reason for the loop.

Maybe you should call the counter variable something meaningful instead
of -- of all things -- "i", which is idiomatic for soething entirely
else. And add a comment, and be done with it.

>    The solution that I had in mind is:
>    while True:
>      ...
>      if <condition>: break
>      if inifinte_loop(): raise infiinte_loop_exception

This is a lot less understandable because whoever is working with your
code will now have to check an additional function  rather than a
pretty self-explanatory variable increment.

robert



More information about the Python-list mailing list