我在Python中有一个函数叫做object_from_DB
。该定义并不重要,只是它采用 ID 值作为参数,使用sqlite3
库从 .db 文件中的表中提取匹配值,然后在对象初始化时使用这些值作为参数。使用此函数不会改变数据库。
鉴于此,这个示例代码让我感到困惑。
>>> x = object_from_DB(422)
>>> y = object_from_DB(422)
>>> x == y
False
为什么会发生这种情况,什么样的技术会导致x
and y
回来True
什么时候比较?
默认情况下,任何用户定义类的两个不同实例都是不相等的:
>>> class X: pass
...
>>> a = X()
>>> b = X()
>>> a == b
False
如果你想要不同的行为,你必须定义它:
class Y:
def __init__(self, value):
self.value = value
def __eq__(self, other):
return self.value == other.value
>>> c = Y(3)
>>> d = Y(3)
>>> e = Y(4)
>>> c == d
True
>>> d == e
False
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)