1
Rational
クラスをPythonで作成し、__add__
、__mull__
などの演算子をそのクラスに対して作成しました。ここで__init__
と__add__
機能のための私のコードは次のとおりです。Pythonオーバーロード操作
class Rational(object):
def __init__(self, p, q=None): # p/q
if q is None: q = 1
if q == 0: raise ZeroDivisionError("division by zero!")
self.p = p
self.q = q
self.simplify() # simplify the fraction
def __iadd__(self, other): # +=
self.p = self.p * other.q + self.q * other.p
self.q = self.q * other.q
self.simplify()
return self
def __add__(self, other):
r = Rational(self.p, self.q)
r += other
return r
今私はPythonが1 + Rational(1, 3)
(1プラス第3)のようなものを理解したいと思います。私はこれをどのように実装できますか? 関数を追加して、other
がintの場合にケースを追加する必要がありますか?それとも簡単な方法がありますか?