Elegant compare

Jason Friedman jsf80238 at gmail.com
Sat Aug 10 23:41:00 EDT 2013


class my_class:
    def __init__(self, attr1, attr2):
        self.attr1 = attr1 #string
        self.attr2 = attr2 #string
    def __lt__(self, other):
        if self.attr1 < other.attr1:
            return True
        else:
            return self.attr2 < other.attr2

I will run into problems if attr1 or attr2 is None, and they
legitimately can be.

I know I can check for attr1 or attr2 or both being None and react
accordingly, but my real class has ten attributes and that approach
will be long.  What are my alternatives?



More information about the Python-list mailing list