<div><div><font face="ЛОМе" color="#0000ff"><br></font></div><div><font face="ЛОМе"><b>Why compare twice?</b></font></div><div><font face="ЛОМе" color="#0000ff"><br></font></div><div><font face="ЛОМе" color="#0000ff">class Student(object):</font></div><div><font face="ЛОМе" color="#0000ff"><br></font></div><div><font face="ЛОМе" color="#0000ff"> def __init__(self, name, score):</font></div><div><font face="ЛОМе" color="#0000ff"> self.name = name</font></div><div><font face="ЛОМе" color="#0000ff"> self.score = score</font></div><div><font face="ЛОМе" color="#0000ff"><br></font></div><div><font face="ЛОМе" color="#0000ff"> def __str__(self):</font></div><div><font face="ЛОМе" color="#0000ff"> return '(%s: %s)' % (self.name, self.score)</font></div><div><font face="ЛОМе" color="#0000ff"><br></font></div><div><font face="ЛОМе" color="#0000ff"> __repr__ = __str__</font></div><div><font face="ЛОМе" color="#0000ff"><br></font></div><div><font face="ЛОМе" color="#0000ff"> def __lt__(self, s):</font></div><div><font face="ЛОМе" color="#0000ff"> #print(self, '--', s)</font></div><div><font face="ЛОМе" color="#0000ff"> if(self.score<s.score):</font></div><div><font face="ЛОМе" color="#0000ff"> print(self, '<', s)</font></div><div><font face="ЛОМе" color="#0000ff"> return True</font></div><div><font face="ЛОМе" color="#0000ff"> if(self.score>s.score):</font></div><div><font face="ЛОМе" color="#0000ff"> print(self, '>', s)</font></div><div><font face="ЛОМе" color="#0000ff"> return False</font></div><div><font face="ЛОМе" color="#0000ff"> if(self.score==s.score):</font></div><div><font face="ЛОМе" color="#0000ff"> if(self.name>s.name):</font></div><div><font face="ЛОМе" color="#0000ff"> print(self, '>', s)</font></div><div><font face="ЛОМе" color="#0000ff"> return False</font></div><div><font face="ЛОМе" color="#0000ff"> if(self.name<s.name):</font></div><div><font face="ЛОМе" color="#0000ff"> print(self, '<', s)</font></div><div><font face="ЛОМе" color="#0000ff"> return True</font></div><div><font face="ЛОМе" color="#0000ff"> if(self.name==s.name):</font></div><div><font face="ЛОМе" color="#0000ff"> print(self, '==', s)</font></div><div><font face="ЛОМе" color="#0000ff"> return False</font></div><div><font face="ЛОМе" color="#0000ff"> </font></div><div><font face="ЛОМе" color="#0000ff"> def __eq__(self, s):</font></div><div><font face="ЛОМе" color="#0000ff"> return (self.score == s.score) and (self.name == s.name)</font></div><div><font face="ЛОМе" color="#0000ff"> def __gt__(self, s):</font></div><div><font face="ЛОМе" color="#0000ff"> return not ((self == s) or (self < s))</font></div><div><font face="ЛОМе" color="#0000ff"> def __le__(self, s):</font></div><div><font face="ЛОМе" color="#0000ff"> return ((self == s) or (self < s))</font></div><div><font face="ЛОМе" color="#0000ff"> def __ge__(self, s):</font></div><div><font face="ЛОМе" color="#0000ff"> return ((self == s) or (self > s))</font></div><div><font face="ЛОМе" color="#0000ff"> def __nq__(self, s):</font></div><div><font face="ЛОМе" color="#0000ff"> return not (self == s)</font></div><div><font face="ЛОМе" color="#0000ff"><br></font></div><div><font face="ЛОМе" color="#0000ff">L = [Student('Tim', 22), Student('Bob', 33), Student('Kevin', 11), Student('Alice', 11)]</font></div></div><div><font face="ЛОМе" color="#0000ff">print(sorted(L))</font></div><div><font face="ЛОМе" color="#0000ff"><br></font></div><div><font face="ЛОМе" color="#0000ff">Output:</font></div><div><font face="ЛОМе"><div style="color: rgb(0, 0, 255);">(Bob: 33) > (Tim: 22)</div><div style=""><font color="#ff0000"><b>(Kevin: 11) < (Bob: 33)</b></font></div><div style=""><font color="#ff0000"><b>(Kevin: 11) < (Bob: 33)</b></font></div><div style="color: rgb(0, 0, 255);">(Kevin: 11) < (Tim: 22)</div><div style="color: rgb(0, 0, 255);">(Alice: 11) < (Tim: 22)</div><div style="color: rgb(0, 0, 255);">(Alice: 11) < (Kevin: 11)</div><div style="color: rgb(0, 0, 255);">[(Alice: 11), (Kevin: 11), (Tim: 22), (Bob: 33)]</div><div style="color: rgb(0, 0, 255);"><br></div><div style=""><b style="">Best regards,</b></div><div style=""><b style="">Xiaofeng</b></div></font></div>