7

Perlでは、のようなことをするのは非常に一般的ですfunction() || alternative()。最初の値がfalseを返す場合、2番目の値を実行します。

これをPythonで簡単に実装するにはどうすればよいですか?

アップデート

例(擬似コード):

x = func() or raise exeption
x = func() or print(x)
func() or print something

可能であれば、ソリューションはPython2.5以降で機能するはずです

注:func()を変更して例外を発生させたり、ラッパーを記述したりすることはできないという暗黙の前提があります。

4

4 に答える 4

5

用途or: Python はブール式の短絡評価を使用します。

function() or alternative()

functionTrue を返す 場合、この式の最終値が決定alternativeされ、まったく評価されません。

于 2011-09-26T09:14:23.597 に答える
2

あなたが使用することができますor:

function() or alternative()

また、 PEP 308で定義されている条件式があります。

x = 5 if condition() else 0

これは、式で役立つ場合があり、少し読みやすくなります。

于 2011-09-26T09:13:55.833 に答える
1

で試してくださいor

>>> def bye():
  return 3

>>> print bye() or 342432
3

残念ながら、これは Perl のようには機能しません。なぜなら、Perl では、値 45 のような代入の後に ifが定義さmy $c = $d || 45;れていないからです。Python ではエラーが発生します$c$dNameError: name 'd' is not defined

于 2011-09-26T09:17:54.913 に答える
1
function() or alternative()

仕組みはまったく同じです。

于 2011-09-26T09:13:41.103 に答える