我在比较 Python 中的复杂对象时遇到了问题,在有人这样做的情况下,有效地object_a = object_b
遵循if object_a == object_b:
. 我通常的解决方案是将对象的地址变成一个字符串,它应该始终是唯一的。
下面是一个双向工作的情况,比较对象并比较 和 的str(object_a)
值str(object_b)
。
>>> class Thing:
>>> def __init__(self):
>>> self.x = 0
>>> return
>>>
>>> a = Thing()
>>> b = a
>>> b == a
True
>>> a_pointer = str(a)
>>> b_pointer = str(b)
>>> a
<__main__.Thing instance at 0x16c0098>
>>> b
<__main__.Thing instance at 0x16c0098>
>>> a == b
True
有没有更好的办法?有没有可能不起作用的情况?