[解決済み] C#のnull-coalescing演算子に相当するPythonの演算子はありますか?
質問
C#では
null coalescing演算子
(と書かれています。
??
) を使用すると、代入時に簡単に (短時間で) NULL チェックを行うことができます。
string s = null;
var other = s ?? "some default value";
Pythonに相当するものはありますか?
できることは知っています。
s = None
other = s if s else "some default value"
しかし、もっと短い方法はないだろうか?
s
)?
解決方法は?
other = s or "some default value"
OK、どのように
or
演算子が動作します。これはブーリアン演算子なので、ブーリアン文脈で動作します。値がブーリアンでない場合、演算子の目的のためにブーリアンに変換されます。
なお
or
演算子は
True
または
False
. その代わり、最初のオペランドが真と評価された場合は最初のオペランドを、最初のオペランドが偽と評価された場合は2番目のオペランドを返します。
この場合、式
x or y
は以下を返します。
x
であれば
True
またはbooleanに変換されたときにtrueと評価される。そうでない場合は
y
. ほとんどの場合、これはC♯のヌルコース演算子と全く同じ目的で使用されますが、覚えておいてください。
42 or "something" # returns 42
0 or "something" # returns "something"
None or "something" # returns "something"
False or "something" # returns "something"
"" or "something" # returns "something"
もし、あなたが変数
s
のインスタンスへの参照であるものを保持するために使用します。
None
(クラスがメンバを定義していない限り)
__nonzero__()
と
__len__()
) の場合、null-coalescing演算子と同じセマンティクスを使用するのが安全である。
実際、Pythonのこの副次的効果は便利なものでさえあるかもしれません。どのような値が false と評価されるかがわかっているので、これを使えば
None
を具体的に示しています(例えば、エラーオブジェクト)。
いくつかの言語では、この動作は エルビス演算子 .
関連
-
PythonによるExcelファイルの一括操作の説明
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] AndroidでPythonを実行する方法はありますか?
-
[解決済み] JavaScriptに「NULL合体」演算子はありますか?
-
[解決済み] Python 3 の "python -m SimpleHTTPServer" に相当するものは何ですか?
-
[解決済み] Pythonでnullオブジェクトを参照する
-
[解決済み] Pythonで複数行のコメントを作成する方法はありますか?
-
[解決済み] NULL-COALESCING 演算子のカスタム暗黙変換の不思議な挙動
-
[解決済み] PHPの三項演算子とNULL合体演算子の比較
-
[解決済み】Pythonに三項条件演算子はありますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ピローによる動的キャプチャ認識のためのPythonサンプルコード
-
Python関数の高度な応用を解説
-
Python機械学習Githubが8.9Kstarsに達したモデルインタープリタLIME
-
Evidentlyを用いたPythonデータマイニングによる機械学習モデルダッシュボードの作成
-
任意波形を生成してtxtで保存するためのPython実装
-
[解決済み】DataFrameのコンストラクタが正しく呼び出されない!エラー
-
[解決済み】socket.error: [Errno 48] アドレスはすでに使用中です。
-
[解決済み】終了コード -1073741515 (0xC0000135)でプロセス終了)
-
[解決済み] 変数が存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み】PythonでNoneの場合、デフォルト値を返す略記法はありますか?[重複している]。