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
より良い方法はありますか?これが機能しない場合がありますか?