Tôi đang cấu trúc lại một số mã cũ của mình và bắt gặp điều này:
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
Mã hoạt động (và tôi đã viết nó cách đây 3 năm!) Nhưng tôi không thể tìm thấy điều này được ghi lại ở bất kỳ đâu trong tài liệu Python và mọi người đều sử dụng sorted()
để triển khai sắp xếp tùy chỉnh. Ai đó có thể giải thích tại sao điều này hoạt động?
sorted()
vàsort()
cung cấp phân loại tùy chỉnh theo cùng một cách, mô-đun hóa sự khác biệt trong quy ước gọi.