これを行う方法はありません。これは意図的なものです。三項 if は、些細な場合にのみ使用することになっています。
計算結果を 2 回使用する場合は、一時変数に入れます。
value = info.findNext("b")
value = value if value else "Oompa Loompa"
これを行うと、何かばかげたことをしていることは明らかになります。実際、これを Python で書く方法は次のとおりです。
value = info.findNext("b")
if not value:
value = "Oompa Loompa"
そして、実際には、最初の試行よりもキーストロークが5 回少なくなっています。
本当にキーストロークを節約したい場合は、代わりにこれを行うことができます:
value = info.findNext("b") or "Oompa Loompa"
しかし、それは多くのスタイル ガイドや BDFL によって推奨されていません。
これを 1 回だけ行う場合は、より明確にすることをお勧めします。6 回も実行している場合は、すべての組み込み関数や stdlib 関数と同様に、findNext
の代わりにオプションのデフォルト値を返すようにするのが簡単で、はるかに優れています。None
def findNext(self, needle, defvalue=None):
# same code as before, but instead of return None or falling off the end,
# just return defvalue.
次に、これを行うことができます:
value = info.findNext("b", "Oompa Loompa")