课程
/后端开发
/Python
/python进阶
既然有了cmp,为啥列子里面还有一堆的if..return..elif..return..else...return使用
2019-12-28
源自:python进阶 6-3
正在回答
因为原生cmp不支持 实例对象做参数比较吧.只能手写规则比较,
python3已经不支持了
定义__cmp__是为了实现自定义排序,如果类内部不定义__cmp__也可以实现排序,不过得到的结果不是我们想要的。
把这几行代码注释了运行看下效果就知道了:
# def __cmp__(self, s):
# if self.score == s.score:
# return cmp(self.name,s.name)
# return -cmp(self.score,s.score)
在类的内部定义自己的规则
举报
学习函数式、模块和面向对象编程,掌握Python高级程序设计