# 有时候我们需要比较两个对象。比如哪个对象大,哪个对象小。
# 如果我们不告诉python如何比较,那么Python是不知道如何进行比较的。

#__eq__(self,other):
#在使用==比较运算符比较两个对象是否相等的时候会调用这个方法。
#如果是相等,那么应该返回True,否则返回False。

#__ne__(self,other):
#在使用!=比较运算符来比较两个对象是否不相等的时候会调用这个方法。
#如果这两个对象不想等,那么应该返回True,否则返回False。

#__lt__(self,other):
#在使用<比较运算符来比比较两个对象大小的时候会调用这个方法。
#如果self<other,那么应该返回True,否则返回False。

#<=和>=的解决方案:
#以上讲了<、>、==以及!=的执行方法。
#没有讲<=和>=这两个运算符执行的方法,其实这两个方法是这样执行的,
#拿<=为例来讲,首先执行<判断,如果为False,那么会再执行==判断,
#如果都为False,那么就返回False。
class xx(object):
  def __init__(self,param1,param2):
    self.param1 = param1
    self.param2 = param2

  def __eq__(self,other):
    if self.param1==other.param1 and self.param2==other.param2:
      return True
    else:
      return False

  def __ne__(self,other):
    if self.param1!=other.param1 or self.param2!=other.param2:
      return True
    else:
      return False

  def __lt__(self,other):
    if self.param1 < other.param1:
      return True
    else:
      if self.param1==other.param1:
        return True if self.param2<other.param2 else False
      else:
        return False

  def __gt__(self,other):
    if self.param1>other.param1:
      return True