[Chicago] Ode to <>

Ian Bicking ianb at colorstudy.com
Fri Sep 1 17:22:19 CEST 2006


Brian Ray wrote:
> class A:
>     def __init__(self,title):
>        self.title = title
>     def __cmp__(self,rhs):
>        return rhs.title == self.title

You got __cmp__ wrong -- you probably meant to do __eq__; __cmp__ is a 
-1/0/1 sorting comparison.  So 0 means equal (-1 means less-than, 1 
means more-than).

You should also do something like "if isinstance(rhs, self.__class__)", 
since "A() == 'foo'" is a valid expression that shouldn't raise an 
AttributeError.

-- 
Ian Bicking | ianb at colorstudy.com | http://blog.ianbicking.org


More information about the Chicago mailing list