gpt4 book ai didi

python - 只为要排序的类实现 __lt__ 是否安全?

转载 作者:IT老高 更新时间:2023-10-28 22:22:07 24 4
gpt4 key购买 nike

假设我的 ClassA 的实例最终会出现在一个数据结构中,并且我们知道 sorted() 将被调用。调用 sorted() 的是别人的代码,所以我不能指定排序函数,但我可以在 ClassA 上实现任何合适的方法。

在我看来

def __lt__(self, other):

就足够了,我不需要实现其他五个左右的方法(qt、eq、le、ge、ne)。

这就够了吗?

最佳答案

PEP 8建议反对这种做法。我也建议不要使用它,因为它是一种脆弱的编程风格(对小的代码修改不健壮):

请考虑使用 functools.total_ordering类装饰器来完成这项工作:

@total_ordering
class Student:
def __eq__(self, other):
return ((self.lastname.lower(), self.firstname.lower()) ==
(other.lastname.lower(), other.firstname.lower()))
def __lt__(self, other):
return ((self.lastname.lower(), self.firstname.lower()) <
(other.lastname.lower(), other.firstname.lower()))

关于python - 只为要排序的类实现 __lt__ 是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8796886/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com