PythonでNoneTypeを「テスト」するにはどうすればいいですか? 質問する

PythonでNoneTypeを「テスト」するにはどうすればいいですか? 質問する

時々NoneType値を返すメソッドがあります。NoneTypeである変数を問い合わせるにはどうすればいいでしょうか?たとえば、ifメソッドを使用する必要があります。

if not new:
    new = '#'

それが間違ったやり方であることは承知していますが、私の言いたいことを理解していただければ幸いです。

ベストアンサー1

では、NoneType である変数を質問するにはどうすればよいでしょうか?

is演算子を次のように使用します

if variable is None:

なぜこれが機能するのでしょうか?

以来Noneは、NoneTypePython では、is演算子を使用して変数Noneに含まれているかどうかを確認できます。

引用元isドキュメント

演算子isと はis notオブジェクトの同一性をテストします。とが同じオブジェクトであるx is y場合にのみ true になります。は逆の真理値を生成します。xyx is not y

のインスタンスは 1 つしか存在しないためNoneisをチェックする方法が推奨されますNone


当事者の口から聞く

引用Python のコーディング スタイル ガイドライン - PEP-008(グイド自身による共同定義)

のようなシングルトンとの比較は、常にorNoneを使用して行う必要がありisis not等価演算子は使用しないでください

おすすめ記事