我试图了解如何在 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
需要在 MyClass 中定义哪些方法才能使 in 运算符起作用?我不确定 in 做了什么(如果是 == 则需要 __eq 或其他东西)。如果您碰巧知道在这种情况下如何使 .index() 工作,我也将不胜感激。
编辑:对不起,最初的问题令人困惑。我希望我说清楚了。我正在尝试查找属于该类的属性,例如另一个问题的原始示例。但现在我试图在列表或哈希中这样做。从某种意义上说,我希望通过询问一个元素是否在列表中,它询问它是否在列表的每个元素中。我不确定是通过在列表或哈希中使用运算符来做到这一点,还是使用 == 进行比较。
谢谢你。