Python对象比较

时间:2016-03-02 04:48:48

标签: python

我需要覆盖对象比较,以便我可以使用<比较类的实例。 > ==!=< => =运营商。 python是否有我用来做的任何方法。

2 个答案:

答案 0 :(得分:2)

  

我不确定的是我需要使用哪些方法来比较矢量。我试过谷歌搜索但却找不到任何东西。 python是否有一些方法来覆盖< > < =等等?

是的,Python拥有完全符合此目的的魔术方法。您已经在使用魔术方法,例如__len____iter__等等。Here'是比较魔术方法的良好链接,您特别重要寻找:

  • __eq__ = eq ual to(==
  • __ne__ = n ot e qual to(!=
  • __lt__ = l ess t han(<
  • __le__ = l ess than或 e qual to(<=
  • __gt__ = g reater t han(>
  • __ge__ = g reater比 e qual(>=

答案 1 :(得分:0)

有问题的神奇方法是:

  • __lt__ - &gt;少于
  • __le__ - &gt;小于等于
  • __ge__ - &gt;大于等于
  • __gt__ - &gt;大于

,当然,

  • __eq__ - &gt;等于
  • __ne__ - &gt;不等于

每种方法的基本框架是:

def __xx__(self, other):
    if not isinstance(other, self.__class__):
        return NotImplemented
    # working code here

前两行(def之后)将确保您的对象与子类以及其他随机对象一起正常工作。