Skip to content

Or If Expression Identity

Sourcery refactoring id: or-if-exp-identity


Replaces if expressions that compare to the target with or


currency = input_currency if input_currency else DEFAULT_CURRENCY


currency = input_currency or DEFAULT_CURRENCY


Here we find ourselves setting a value if it evaluates to True, and otherwise using a default.

The 'After' case is a bit easier to read and avoids the duplication of input_currency.

It works because the left-hand side is evaluated first. If it evaluates to True then currency will be set to this and the right-hand side will not be evaluated. If it evaluates to False the right-hand side will be evaluated and currency will be set to DEFAULT_CURRENCY.