首先抄一下Rational类,可以安静的抄一遍
书中214-215页间程序清单8-4的代码如下:
class Rational:
def __init__(self, numerator=1, denominator=0):
divisor = gcd(numerator, denominator)
self.__numerator = (1 if denominator > 0 else -1) * int(numerator / divisor)
self.__denominator = int(abs(denominator) / divisor)
def __add__(self, second_rational):
n = self.__numerator * second_rational[1] + self.__denominator * second_rational[0]
d = self.__denominator * second_rational[1]
return Rational(n, d)
def __sub__(self, second_rational):
n = self.__numerator * second_rational[1] - self.__denominator * second_rational[0]
d