RFC: Assignment as expression (pre-PEP)

Duncan Booth duncan.booth at invalid.invalid
Thu Apr 5 16:22:30 EDT 2007


TimeHorse at gmail.com wrote:

> Performing a list of mutually exclusive checks that require data
> processing can cause excessive tabification.  For example, consider
> the following python snipet...
> 
> temp = my_re1.match(exp)
> if temp:
>   # do something with temp
> else:
>   temp = my_re2.match(exp)
>   if temp:
>     # do something with temp
>   else:
>     temp = my_re3.match(exp)
>     if temp:
>       # do something with temp
>     else:
>       temp = my_re4.match(exp)
> 

Can you come up with a real example where this happens and which cannot be 
easily rewritten to provide better, clearer code without the indentation?

I'll admit to having occasionally had code not entirely dissimilar to this 
when first written, but I don't believe it has ever survived more than a 
few minutes before being refactored into a cleaner form. I would claim that 
it is a good thing that Python makes it obvious that code like this should 
be refactored.



More information about the Python-list mailing list