1. ホーム
  2. パイソン

[解決済み】if A vs if A is not None:

2022-04-13 03:12:14

質問

使用できますか?

if A:

ではなく

if A is not None:

後者はとても冗長な感じがします。何か違いがあるのでしょうか?

どのように解決するのですか?

ステートメント

if A:

を呼び出します。 A.__bool__() (参照 特殊なメソッド名 のドキュメント) と呼ばれていたものが __nonzero__ をPython 2で作成し、その関数の戻り値を使用します。以下はその概要です。

object.__bool__(self)

真理値検定を実装するために呼び出され、ビルトインされた操作 bool() を返さなければならない。 False または True . このメソッドが定義されていない場合。 __len__() が呼び出され、その結果が0でなければ真とみなされる。もしクラスが __len__() または __bool__() の場合、そのインスタンスはすべて真とみなされる。

一方

if A is not None:

比較する のみ 参照 ANone が同じかどうかを確認します。