同じ ID を持つオブジェクトは、== で比較すると常に等しくなりますか? 質問する

同じ ID を持つオブジェクトは、== で比較すると常に等しくなりますか? 質問する

2つのオブジェクトo1とo2があり、

id(o1) == id(o2)

戻り値真実

では、

o1 == o2

それとも、必ずしもそうではないのでしょうか? 私が取り組んでいる論文では、そうではないと書かれていますが、私の意見では、そうであるはずです。

ベストアンサー1

常にではない:

>>> nan = float('nan')
>>> nan is nan
True

または質問と同じように表現することもできます。

>>> id(nan) == id(nan)
True

しかし

>>> nan == nan
False

非N奇妙なものです。定義上、それはそれ自身と等しいわけでも、それ自身より小さいわけでも大きいわけでもありません。しかし、それは同じオブジェクトです。すべての比較がなぜ返されるのか、詳しくFalseこのSOの質問

おすすめ記事