Is It Safe To Just Implement __lt__ For A Class That Will Be Sorted?
Suppose instances of my ClassA will end up in a data structure and we know sorted() will be called on it. It's someone else's code that'll call sorted() so I can't specify a sorti
Solution 1:
PEP 8 recommends against this practice. I also recommend against it because it is a fragile programming style (not robust against minor code modifications):
Instead, consider using the functools.total_ordering class decorator to do the work:
@total_ordering
class Student:
def __eq__(self, other):
return ((self.lastname.lower(), self.firstname.lower()) ==
(other.lastname.lower(), other.firstname.lower()))
def __lt__(self, other):
return ((self.lastname.lower(), self.firstname.lower()) <
(other.lastname.lower(), other.firstname.lower()))
Post a Comment for "Is It Safe To Just Implement __lt__ For A Class That Will Be Sorted?"