6.8 不同条件分支里应减少重合度¶
如下是一个简单的条件语句模型
if A:
<code_block_1>
elif B:
<code_block_2>
else:
<code_block_3>
如果 code_block_2 和 code_block_1 的代码完全一致,那么应该想办法减少代码冗余。
这边举个例子,下面这段代码中
def process_payment(payment):
if payment.currency == 'USD':
process_standard_payment(payment)
elif payment.currency == 'EUR':
process_standard_payment(payment)
else:
process_international_payment(payment)
其实更好的做法是用 in 来合并条件一和条件二
def process_payment(payment):
if payment.currency in ('USD', 'EUR'):
process_standard_payment(payment)
else:
process_international_payment(payment)