八叶一刀·无仞剑

万物流转,无中生有,有归于无

导航

关于__cmp__的使用

Posted on 2018-08-27 20:39  闪之剑圣  阅读(1396)  评论(0编辑  收藏  举报

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