Python 3 中删除了 cmp 函数
在 Python 3 中, cmp 内置函数与 __cmp__ 特殊方法一起被删除。
从文档:
该
cmp()功能应被视为去,并且__cmp__()不再支持的特殊方法。使用__lt__()进行分类,__eq__()使用__hash__(),并根据需要进行其他丰富的比较。 (如果你真的需要cmp()功能,你可以使用表达式(a > b) - (a < b)作为cmp(a, b)的等价物。)
此外,所有接受 cmp 参数的内置函数现在只接受 key 关键字参数。
在 functools 模块中还有一个有用的功能 cmp_to_key(func) ,它允许你从 cmp 风格的功能转换为 key 风格的功能:
将旧式比较功能转换为关键功能。与接受关键功能的工具一起使用(例如
sorted(),min(),max(),heapq.nlargest(),heapq.nsmallest(),itertools.groupby())。此函数主要用作从 Python 2 转换的程序的转换工具,它支持使用比较函数。