__cmp__是python的类中所使用的特殊函数,一般用于对类对象列表的排序。
举个例子,假设需要对Student类的对象列表按照其成绩grade属性进行排序,那么可以这么设计:
class Student(object): def __init__(self): self.grade = 0 def __cmp__(self,other): if self.grade<other.grade: return -1 elif self.grade>other.grade: return 1 else: return 0
__cmp__用实例自身self和传入的实例other进行比较,如果self应该排在前面,就返回 -1,如果other应该排在前面,就返回1,如果两者相当,返回 0。
最后可以用list.sort函数或者sorted函数来实现排序。