[Python-Dev] rich comparisions and old-style classes (original) (raw)
Fredrik Lundh fredrik at pythonware.com
Sun Apr 30 08:13:40 CEST 2006
- Previous message: [Python-Dev] (hopefully) final draft of externally maintained code PEP
- Next message: [Python-Dev] rich comparisions and old-style classes
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
trying to come up with a more concise description of the rich comparision machinery for pyref.infogami.com, I stumbled upon an oddity that I cannot really explain:
in the attached example below, why is the rich comparision machinery doing four attempts to use eq in the old- class case?
$ more test.py
class old: def init(self, name): self.name = name def repr(self): return self.name def eq(self, other): print "EQ", self, other return NotImplemented def cmp(self, other): print "CMP", self, other return 0
class new(object): def init(self, name): self.name = name def repr(self): return self.name def eq(self, other): print "EQ", self, other return NotImplemented def cmp(self, other): print "CMP", self, other return 0
a = old("A") b = old("B")
print a == b
a = new("A") b = new("B")
print a == b
$ python test.py
EQ A B EQ B A EQ B A EQ A B CMP A B True EQ A B EQ B A CMP A B True
- Previous message: [Python-Dev] (hopefully) final draft of externally maintained code PEP
- Next message: [Python-Dev] rich comparisions and old-style classes
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]