0

比較を実装するときに少し問題があり、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)
4

1 に答える 1

0

例えば:

>>> r2=Rational("0.25")
>>> r2
<Rational 1/4>
>>> r2<4
True
>>> 4<r2
Traceback (most recent call last):
  File "<pyshell#33>", line 1, in <module>
    4<r2
TypeError: unorderable types: int() < Rational()
>>> 
于 2013-12-06T19:13:00.633 に答える