class Foo:
def __init__(self, key):
self.key = key
def __cmp__(self, other):
return cmp(self.key, other.key)
如此Foo类型的object间的大小比较就可以用key这个域的值来实现.在Python 3以后, __cmp__ 方法被移除了. 实现Foo object间的大小比较, 需要用functools.total_ordering修饰这个class以后, 实现__eq__方法以及__lt__(或者__lt__, __le__, __gt__, __ge__中的任意一个).
import functools
@functools.total_ordering
class Foo:
def __init__(self, key):
self.key = key
def __eq__(self, other):
return self.key == other.key
def __lt__(self, other):
return self.key < other.key