5

Pythonには三項条件演算子がありますか?。それは

result = a if a > b else b

よりも優れたコードです

result =  a > b and a or b

しかし、誰もその理由を説明しません。誰かが詳しく説明してくれませんか?

それが単なる読みやすさである場合、それは実際には好みの問題です。一部の人々は一方を好きになり、一部の人々はもう一方を好きになるでしょう。ですから、私の質問は、一方の方向に進むことともう一方の方向に進むことには、本当に技術的な利点があるのか​​ということです。

4

1 に答える 1

14

result = a if a > b else bそれは常に意味的に正しいので、より良いです。aつまり、またはの値に関係なく、常に期待どおりの結果が得られますb。が偽の値(、、など)の場合、毎回result = a > b and a or b結果になります。ba0None

さらに、a if x else bは特別に定義された言語構造であるため、通常、他のPython開発者が理解しやすくなります。最終的に、コードをレビューまたは保守する人は、何が起こっているのかを理解するために、精神的な論争をできるだけ少なくする必要があります。

于 2013-01-31T14:19:50.560 に答える