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