回答編集履歴
3
追記
test
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
|
7
7
|
|
8
8
|
|
9
|
-
さて、この`__eq__`ですが、すべてのオブジェクトにデフォルトで存在してはいます。すべてのクラスの基底クラスである`object`クラスですでに実装されているからです。ただし、これは抽象メソッド的に置いてあるだけで、実用的に使える訳ではありません。デフォルトでは`is`比較(同一性の比較)と同等の処理のみ行います。
|
9
|
+
さて、この`__eq__`ですが、すべてのオブジェクトにデフォルトで存在してはいます。すべてのクラスの基底クラスである`object`クラスですでに実装されているからです。ただし、これは抽象メソッド的に置いてあるだけで、実用的に使える訳ではありません(念の為に:「抽象メソッド的」というのは比喩的な意味です。最低限の実装は以下に述べるように存在しています)。デフォルトでは`is`比較(同一性の比較)と同等の処理のみ行います。
|
10
10
|
|
11
11
|
|
12
12
|
|
2
追記
test
CHANGED
@@ -64,4 +64,4 @@
|
|
64
64
|
|
65
65
|
|
66
66
|
|
67
|
-
やりたいことが`x.val == y.val`ならそれを`__eq__`に書いておけばいいのですが(引数の名前に変えた上で)、私の感覚ではこれはリストのコンスセルの同値性としては「緩すぎる」と感じます。なので、`==`演算子には委ねず
|
67
|
+
やりたいことが`x.val == y.val`ならそれを`__eq__`に書いておけばいいのですが(引数の名前に変えた上で)、私の感覚ではこれはリストのコンスセルの同値性としては「緩すぎる」と感じます。なので私なら、`==`演算子には委ねずに素直に外側で`x.val == y.val`を判定するように実装するでしょう。
|
1
追記
test
CHANGED
@@ -61,3 +61,7 @@
|
|
61
61
|
|
62
62
|
|
63
63
|
コードのロジックまでは追っていないので、やりたいことと合っているかはわかりません。`val`と`next`属性が同一の`ListNode`オブジェクトは同値であるとみなすという私の信念にもとづくコードです。気に入らなければ質問者さんの責任で書き換えてください。
|
64
|
+
|
65
|
+
|
66
|
+
|
67
|
+
やりたいことが`x.val == y.val`ならそれを`__eq__`に書いておけばいいのですが(引数の名前に変えた上で)、私の感覚ではこれはリストのコンスセルの同値性としては「緩すぎる」と感じます。なので、`==`演算子には委ねず、素直に外側で`x.val == y.val`を判定するように実装するでしょう。
|