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 转换的程序的转换工具,它支持使用比较函数。