class Shu(object):
def __init__(self,ss):
self.ss = ss def __str__(self):
return '(%s: %s)' % (self.name, self.score)
__repr__ = __str__ def __cmp__(self, s):
print ('func __cmp__ work')
if self.ss < s.ss:
return -1
elif self.ss > s.ss:
return 1
else:
return 0 a=Shu(3)
b=Shu(2)
c=a>b#运行a.__cmp__(b),c为True
d=cmp(a,b)#运行a.__cmp__(b),d为1,注意d与上面c类型不同,cmp返回的是0,-1,1

python2的比较函数是cmp.cmp调用的是对象的__cmp__方法,字符串,整数,列表等对象都内置该方法。

而给列表排序的函数sorted,也是通过cmp函数确定两个元素的大小关系,然后再利用插入排序的改进版的(与插入排序原理相同,不同的是,插入排序插入时是从已排序部分的最后一个元素进行比较,而这个是从中间进行比较)算法完成排序,返回排好序的一个新的列表。但注意,他并不改变原列表

但是在pyhon3的比较函数已经不是cmp了

最新文章

  1. NSCalendar NSDateComponents
  2. System Center的一些资料收集
  3. java的技术调用栈图示例
  4. 【UER #1】跳蚤OS(Trie)
  5. hdu-3046-Pleasant sheep and big big wolf(最大流最小割)
  6. 【POJ3006】Dirichlet&#39;s Theorem on Arithmetic Progressions(素数筛法)
  7. SMART rule之个人理解
  8. 房费制 它 结账BUG
  9. shared_ptr注意点
  10. Password
  11. Keep Mind Working
  12. git本机服务器配置(二):TortoiseGit的安装
  13. BEX5下实现鼠标滚动滚动条
  14. python修炼第三天
  15. C++实现程序单实例运行的两种方式
  16. C# print2flash3文件转化
  17. Java版 家政服务 社区服务 家装服务平台 源码 有案例 可定制
  18. FastReport 保存为文件
  19. 如何指定一个和你的Android应用程序相适配的屏幕配置
  20. python--文件I/O--11

热门文章

  1. Linux系统——程序员跳槽必备
  2. Codeforces Round #404 (Div. 2)A,B,C
  3. MT【211】保序同构
  4. 自学Linux Shell19.2-gawk程序高级特性
  5. BZOJ 2434 阿狸的打字机 | AC自动机
  6. php多进程、IPC和事件驱动
  7. JDK源码分析(1)ArrayList
  8. 2018 省选 T1 一双木棋
  9. react缓存问题
  10. MyEclipse添加模板注释