多くの場合、次の構造のように、そのような値が条件を満たす場合にのみ、関数によって返される値を使用する必要があります。
tmp = my_func(x)
if tmp == some_value:
# do something with tmp
次のように、 new variable の使用を避けることで、このコードをより簡潔で読みやすくしたいと思いますtmp
。
if my_func(x) == some_value:
# do something with my_func(x) last return
別の例は次のとおりです。
tmp = initialization_value
while tmp != some_value:
tmp = my_func(x)
# do something with tmp
# change value of x
それはより簡潔で読みやすいでしょう
while my_func(x) != some_value:
# do something with my_func(x) last return
# change value of x
そのようなコーディング スタイルを取得または実装することは可能ですか?
ファローアップ
それを取得する最良の方法は、最後に返された値をキャッシュするデコレーターを使用することです。以下の回答を参照してください。
究極かつ決定的なソリューション
この質問には投票がありませんでしたが、そのような言語機能を求めたのは私だけではなかったようです。実際、最終的に Python 3.8 では、このニーズに正確に対応するwarus operatorが導入されました。Python 3.8+ では、上記のコードは次のように非常に便利に記述されます。
if (result := my_func(x)) == some_value:
# do something with result