私は急いでたくさんのコピー/ペーストを少しきれいに書いたコードを作ろうとしています。私は、同じことをすることに刺激的に近い2つの機能を持っていることに気づいた。elseブロックへのループの代替方法
def determine_risk(difference):
if difference > ON_TRACK:
return 'On Track'
elif difference < HIGH_RISK:
return 'High Risk'
else:
return 'Low Risk'
def determine_completeness(pct_complete):
if pct_complete == UNSTARTED:
return 'Unstarted'
elif pct_complete > READY:
return 'Ready'
else:
return 'In Process'
これを1つの機能に変えたいと思います。何かのように
def determine_condition(metric, [list_of_conditions], [list_of_outcomes], fallback)
for condition, outcome in zip(list_of_conditions, list_of_outomes):
if metric satisfies condition:
return outcome
return fallback
問題は私はそういうリストに条件付きチェックを保存することはできないと思います!誰かが私に道を示し、またはあなたがラムダ式、例えばの配列としての条件を保存することができ1
を行うので、あなたは(https://stackoverflow.com [このよう]意味/ questions/47728364/python-design-pattern-for-many-conditions)? – MrT
あなたのコードを関数にラップし、それらの関数を使用してください... –