比较操作符

Python包含了一系列的魔法方法,用于实现对象之间直接比较,而不需要采用方法调用。同样也可以重载Python默认的比较方法,改变它们的行为。下面是这些方法的列表:

  • __cmp__(self, other)
    __cmp__ 是所有比较魔法方法中最基础的一个,它实际上定义了所有比较操作符的行为(<,==,!=,等等),但是它可能不能按照你需要的方式工作(例如,判断一个实例和另一个实例是否相等采用一套标准,而与判断一个实例是否大于另一实例采用另一套)。__cmp__ 应该在 self < other 时返回一个负整数,在 self == other 时返回0,在 self > other 时返回正整数。最好只定义你所需要的比较形式,而不是一次定义全部。如果你需要实现所有的比较形式,而且它们的判断标准类似,那么 __cmp__ 是一个很好的方法,可以减少代码重复,让代码更简洁。
  • __eq__(self, other)
    定义等于操作符(==)的行为。
  • __ne__(self, other)
    定义不等于操作符(!=)的行为。
  • __lt__(self, other)
    定义小于操作符(<)的行为。
  • __gt__(self, other)
    定义大于操作符(>)的行为。
  • __le__(self, other)
    定义小于等于操作符(<)的行为。
  • __ge__(self, other)
    定义大于等于操作符(>)的行为。

选自:非常全的通俗易懂 Python 魔法方法指南(上) - 知乎 (zhihu.com)

例:23. 合并 K 个升序链表 - 力扣(LeetCode)

1
ListNode.__lt__ = lambda a, b: a.val < b.val  # 让堆可以比较节点大小

比较操作符
http://example.com/2024/03/21/比较操作符-title/
作者
SuperNiuNiu
发布于
2024年3月21日
许可协议