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 轉換的程式的轉換工具,它支援使用比較函式。