ホームページ  >  記事  >  バックエンド開発  >  「foo is None」と「foo == None」の違いは何ですか?

「foo is None」と「foo == None」の違いは何ですか?

anonymity
anonymityオリジナル
2019-05-24 13:59:442482ブラウズ

「foo is None」と「foo == None」の違いはジャジャの違いです。is ジャジャは 2 つのオブジェクトが同じオブジェクトであるかどうかを比較するために使用され、== ジャジャは使用されます。 2 つのオブジェクトを比較します。オブジェクトの値が等しいかどうか。

「foo is None」と「foo == None」の違いは何ですか?

foo is None と foo == None

if foo is None: 
    pass
if foo == None: 
    pass

これらは 2 つの異なる使用法です。違い?

解決策回答:

Python の変数自体は値を保存しません。変数の割り当ては、実際にはキャッシュされたオブジェクトへの変数参照を指します。例:

a=5
b=5

2 つの変数は実際には同じオブジェクトを指しているようです。このとき、a==b、a is b は両方とも True、そして ==演算子は 2 つのオブジェクトの値を比較します。2 つの変数が同じ参照を指しているかどうかを判断します。同じオブジェクトかどうかを判断したい場合は、関数 id() を使用して実際のオブジェクトの ID を表示します。 (整数) このとき、id(a)、id(b)、id(5) の識別子は全て一致しています。

同様に、foo が None の場合、実際には None オブジェクトの実際の識別子を指します。このとき、id() を使用して、None である変数の識別子を表示すると、それが表示されることがわかります。 id(None) と同じです 結果は同じです。

質問の結果は同じですが、セマンティクスが異なります。「foo と None は同じオブジェクトである」と表現したいか、「foo の値は次と等しい」を表現したいかによって異なります。値は「なし」です。

以上が「foo is None」と「foo == None」の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。