Problem comparing object graphs and trees

raphael.marvie at gmail.com raphael.marvie at gmail.com
Fri Dec 15 08:38:54 EST 2006


Dear all,

I am trying to compare graphes of object through the use of the __cmp__
operator. Before managing the problem of recursive comparison, I have
tried a simple test which result surprises me. Here is the simplest
code I can write that presents my problem:

</pre>
$ cat cmp.py

class A:
    def __init__(self, b):
        self.b = b
    def __cmp__(self, other):
        return self.b == other.b

class B:
    pass

if __name__ == '__main__':
    b = B()
    a1 = A(b)
    a2 = A(b)
    print a1 == a2
    print a1 == a1

$ python cmp.py
False
False
</pre>

I swear I am not drunk, but why isn't a1 == a2 and worse why isn't a1
== a1? Does someone have a clue and can explain to me this suprising
behavior? (python 2.4.3 on Ubuntu 6.06).

Cheers,

r.




More information about the Python-list mailing list