回答編集履歴

2

追記

2018/08/21 14:24

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -59,3 +59,31 @@
59
59
  `object.__eq__`をオーバーライドすればハック可能ではあります。
60
60
 
61
61
  同一オブジェクトの比較でFalseを返す実装なんて、真っ当な人なら採用しませんが。
62
+
63
+
64
+
65
+ **追記:**
66
+
67
+ 良く考えれば、`nan`同士の比較は常にFalseを返すんでした。
68
+
69
+ ```Python
70
+
71
+ >>> nan = float('nan')
72
+
73
+ >>>
74
+
75
+ >>> nan is nan
76
+
77
+ True
78
+
79
+ >>> nan == nan
80
+
81
+ False
82
+
83
+ ```
84
+
85
+
86
+
87
+ ただし、これはかなり特殊なケースです。
88
+
89
+ 普通は`a is b`がTrueなら`a == b`もTrueになると思ってよいでしょう。

1

追記

2018/08/21 14:24

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -38,6 +38,12 @@
38
38
 
39
39
 
40
40
 
41
+ 調べると説明はいろいろ出てきますので、まずはひととおり読んでみましょう。
42
+
43
+ [Google - python == is](https://www.google.co.jp/search?q=python+%3D%3D+is)
44
+
45
+
46
+
41
47
  > 下のように記述した結果、違う出力結果が出てきました。
42
48
 
43
49
 
@@ -50,6 +56,6 @@
50
56
 
51
57
  **註:**
52
58
 
53
- object.__eq__をオーバーライドすればハック可能ではあります。
59
+ `object.__eq__`をオーバーライドすればハック可能ではあります。
54
60
 
55
61
  同一オブジェクトの比較でFalseを返す実装なんて、真っ当な人なら採用しませんが。