1 #!/usr/bib/env python
2 #-*- coding:utf-8 -*-
3
4 """
5 ADT Rational: #定义有理数的抽象数据类型6 Rational(self, int num, int den) #构造有理数num/den7 +(self, Rational r2) #求出本对象加r2的结果8 -(self, Rational r2) #求出本对象减r2的结果9 *(self, Rational r2) #求出本对象乘以r2的结果10 /(self, Rational r2) #求出本对象除以r2的结果11 num(self) #取出本对象的分子12 den(self) #取出本对象的分母13 int(self) #取整14 float(self) #取浮点数15 ==(self,Rational r2)16 !=(self,Rational r2)17 >(self,Rational r2)18 =(self,Rational r2)20 >=(self,Rational r2)21 """
22
23 classRational(object):24 __slots__ = (‘_num‘, ‘_den‘)25
26 @staticmethod27 def_gcd(m,n):28 while 1:29 temp = n %m30 if temp ==0:31 returnm32 else:33 n =m34 m =temp35
36 def __init__(self, num, den=1):37 if not isinstance(num, int) or notisinstance(num, int):38 raiseTypeError39 if den ==0:40 raiseZeroDivisionError41