Python でオブジェクトのリストまたはハッシュを実装する方法を理解しようとしています。より具体的には、私が得ることができる最も近いこの質問で、私はそれを次のようにして見ました:
class MyClass(object):
def __init__(self):
self.numbers = [1,2,3,4,54]
def __contains__(self, key):
return key in self.numbers
>>> m = MyClass()
>>> 54 in m
True
クラスで直接演算子を使用して、クラス内の属性をチェックできます。
私の質問はこれの延長です。MyClass オブジェクトのリストまたはハッシュがあるとします。
list = [m1,m2,m3]
hash = {m1,m2,m3}
次のようなものを使用したいと思います:
if 54 in list:
#do something
if 54 in hash:
#do something
in 演算子が機能するために MyClass で定義する必要があるメソッドは何ですか? in が何をするのかわかりません(__eqなどを必要とする==の場合)。そのような場合に .index() を機能させる方法を知っていれば、私も感謝します。
編集:申し訳ありませんが、最初の質問は混乱を招きました。私はそれを明確にしたことを願っています。他の質問の元の例など、クラスの一部である属性を見つけようとしています。しかし今、リストまたはハッシュ内でそうしようとしています。ある意味では、要素がリスト内にあるかどうかを尋ねることで、リストの各要素内にあるかどうかを尋ねます。リストまたはハッシュで演算子を使用することでそれが行われるのか、それとも == を使用して比較されるのかはわかりません。
ありがとうございました。