私は私の古いコードをリファクタリングしていて、これに遭遇しました:
alist.sort(cmp_items)
def cmp_items(a, b):
if a.foo > b.foo:
return 1
elif a.foo == b.foo:
return 0
else:
return -1
コードは機能します(そして、私はそれを約3年前に書きました!)が、Pythonドキュメンテーションのどこにもドキュメント化されているこのことを見つけることができず、誰もがsorted()
カスタムソートの実装に使用しています。これがなぜ機能するのか誰かが説明できますか?
sorted()
sort()
呼び出し規約の違いを法として、ほとんど同じ方法でカスタムの並べ替えを提供します。