osdir.com


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

exit 2 levels of if/else and execute common code


On 2/11/19 9:25 AM, Neal Becker wrote:
> I have code with structure:
> ```
> if cond1:
>    [some code]
>    if cond2: #where cond2 depends on the above [some code]
>      [ more code]
> 
>    else:
>      [ do xxyy ]
> else:
>    [ do the same xxyy as above ]
> ```
> 
> So what's the best style to handle this?  As coded, it violates DRY.
> Try/except could be used with a custom exception, but that seems a bit heavy
> handed.  Suggestions?

Put some code, cond2, more code, and xxyy into separate
functions, and leave it the way it is.  We all have our own
levels of acceptable inelegance, and this one fits well
within mine.  Optionally, instead of separate calls to xxyy,
set a flag and  only call xxyy at the end if the flag is set.

Dan