关于__cmp__的使用

时间:2023-03-09 03:08:21
关于__cmp__的使用

__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函数来实现排序。