他の4つのメソッドを順番に呼び出して特定の条件をチェックし、Truthyが何かを返すとすぐに(次のチェックは行わずに)戻るメソッドがあります。
def check_all_conditions():
x = check_size()
if x:
return x
x = check_color()
if x:
return x
x = check_tone()
if x:
return x
x = check_flavor()
if x:
return x
return None
これは多くの手荷物コードのようです。各2行のifステートメントの代わりに、次のようなことを行います。
x and return x
しかし、それは無効なPythonです。ここにシンプルでエレガントなソリューションがありませんか?ちなみに、この状況では、これらの4つのチェックメソッドは高価になる可能性があるため、複数回呼び出す必要はありません。
x and return x
はより優れていると思いますif x: return x
か?後者の方がはるかに読みやすく、保守が可能です。文字数や行数を気にする必要はありません。読みやすさが重要です。とにかく、空白以外の文字の数はまったく同じです。本当に必要な場合は、if x: return x
1行で問題なく機能します。
x
(とは対照的にbool(x)
)戻ります。そのため、現状では、OPの関数は何でも返すことができると想定して安全であり、真実である最初のものは何でも望んでいます。