0

多くの場合、ビジネスロジックやその他のロジックをチェックするためのpythonコードは、以下のようなものです(簡略化):

user_input = 100
if user_input == 100:
    do_something()
elif user_input > 100:
    do_sth_different()
else:
    do_correct()

新しいロジックをチェックする必要がある場合、(私のような) 新しい Python プログラマーは、elif に新しいブロックを追加するだけです...

if else チェックの長いチャンクを使用せずに一連のロジックをチェックする Pythonic の方法は何ですか?

ありがとう。

4

2 に答える 2

4

最も一般的な方法は、elif を 1 行だけ並べたものであり、これには特に問題はありません。実際、ドキュメントでは、スイッチの代わりに elif を使用するように指示されています。ただし、別の非常に一般的な方法は、関数の辞書を作成することです。

functions = {100:do_something,101:do_sth_different}
user_input = 100
try:
    functions[user_input]()
except KeyError:
    do_correct()

これは指定された行を許可しませんが、if user_input > 100等値関係と一般的なケースを確認する必要がある場合は、特に複数回行う必要がある場合にうまく機能します。

defaulttry except ケースは、汎用関数をパラメーターとして使用して、ディクショナリで明示的に get を呼び出すことで置き換えることができます。

functions.get(user_input,do_correct)()

それがあなたのボートを浮かせたら。

于 2012-05-18T06:06:29.467 に答える
-1

あなたがやっている方法がおそらく最良の方法であるという事実は別として、次のように書くこともできます。

user_input = 100

do_something() if user_input == 100 else
do_sth_different() if user_input > 100 else
do_correct()
于 2012-05-18T07:08:58.073 に答える