1

三項演算子の存在をテストするための略語を覚えているようです。例えば:

a = None
b = a if a else 'Not None!'
# b is now 'Not None!'

こんな感じだと思いました

a else 'Not None!'

しかし、それは機能しません。おそらく、他の組み込みタイプを使用してこれを短縮する別の方法がありますか?

4

3 に答える 3

3

いいえ、利用できる略語はありません。

a or 'Not None!'代わりに考えていましたか?

補足として:... if ... else ...条件式と呼ばれます。これは項演算子ですが、SQLBETWEEN ... IN ...式も同様です。

于 2013-03-20T21:44:42.980 に答える
1

はい、あなたの場合、略語があります。

b = a or 'Not None!'

とほぼ同等

b = a if a else 'Not None!'

唯一の違いはa、最初のケースでは 1 回、2 番目のケースでは 2 回評価されることです。bどちらの場合も、入れられる値は同じです。

aまた、どちらのコードでも、 が None ではなく False の場合、予期しない結果になる可能性があることに注意してください。たとえば、aがの場合に何が起こるかを考えてみましょう。0.0

于 2013-03-20T21:52:52.123 に答える
0

これは私には本当に意味がありません

a = None
b = a if a else 'Not None!'

(を含む)Not None!の偽の値に対してbをに設定していますaNone

おそらくあなたは考えていた

a = None
b = 'Not None!' if a is None else a

か何か?

とにかく、あなたが逃げることができる場合を除いて

b = a or 'Not None!'

また

b = a and 'Not None!'

a二度言及することを避ける方法はありません

于 2013-03-20T22:48:07.437 に答える