【发布时间】:2023-03-22 20:59:01
【问题描述】:
考虑以下代码:
>>> class A(object):
... def __init__(self, a):
... self.a = a
... def __eq__(self, other):
... return self.a==other.a
...
>>> a=A(1)
>>> b=A(1)
>>> c=A(2)
>>> a==b
True # because __eq__ says so
>>> a==c
False # because __eq__ says so
>>> a is b
False # because they're different objects
>>> l = [b,c]
>>> a in l
True # seems to use __eq__ under the hood
所以,in 似乎使用__eq__ 来确定容器中是否有东西。
- 在哪里可以找到有关此行为的文档?
- 如果对象
a在somelist中,而不是与a比较的其他对象,是否可以使in使用对象标识,即a in somelist?
【问题讨论】:
标签: python comparison-operators