我需要覆盖对象比较,以便我可以使用<比较类的实例。 > ==!=< => =运营商。 python是否有我用来做的任何方法。
答案 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
之后)将确保您的对象与子类以及其他随机对象一起正常工作。