比較を実装するときに少し問題があり、Class Rational でほぼ完了しました。Rational 数を int と比較すると、Rational が左オペランドの場合はすべて問題ありませんが、比較が int < Rational の場合は機能しません。次__lt__
のようなメソッド__gr__
でこの問題が発生します__ge__
__le__
。私の方法の1つ:
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)