我几乎完成了我的 Class Rational,在实现比较时遇到了一点问题。当我将 Rational 数与 int 进行比较时,如果 Rational 是左操作数,那么一切都很好,但是当比较是 int < Rational 时,它就不起作用了.. 使用诸如 : __lt__
, __gr__
,之类的方法会出现这个问题__ge__
__le__
。我的一种方法:
def __lt__(self,other):
n1=self.n
d1=self.d
if isinstance(other,Rational):
n2=other.n
d2=other.d
elif isinstance(other,int):
n2=other
d2=1
return (n1/d1)<(n2/d2)