当我用单词in
执行此代码时会发生什么情况(假设我创建了A类),更具体地说是如何比较对象:
my_list = [A(1), A(2), A(3)]
A(1) in my_list # returns True
A(-3) in my_list # returns False
我对正在发生的事情的技术细节(如果调用了hash
或repr
等)感兴趣,因此我对专家级对此问题的答案非常感兴趣
答案 0 :(得分:1)
可以将表达式x in y
视为:
any(x is e or x == e for e in y)
请注意,如果您尚未为类A(12) != A(12)
定义相等性,则可能是A
。