[Python-checkins] python/dist/src/Demo/classes Rat.py,1.7,1.8

akuchling@users.sourceforge.net akuchling@users.sourceforge.net
Thu, 24 Apr 2003 10:04:48 -0700


Update of /cvsroot/python/python/dist/src/Demo/classes
In directory sc8-pr-cvs1:/tmp/cvs-serv22782

Modified Files:
	Rat.py 
Log Message:
Modernize code by using isinstance() instead of type() checks

Index: Rat.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Demo/classes/Rat.py,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** Rat.py	24 Apr 2003 16:59:45 -0000	1.7
--- Rat.py	24 Apr 2003 17:04:45 -0000	1.8
***************
*** 29,36 ****
  def rat(num, den = 1):
  	# must check complex before float
! 	if type(num) is ComplexType or type(den) is ComplexType:
  		# numerator or denominator is complex: return a complex
  		return complex(num) / complex(den)
! 	if type(num) is FloatType or type(den) is FloatType:
  		# numerator or denominator is float: return a float
  		return float(num) / float(den)
--- 29,36 ----
  def rat(num, den = 1):
  	# must check complex before float
! 	if isinstance(num, complex) or isinstance(den, complex):
  		# numerator or denominator is complex: return a complex
  		return complex(num) / complex(den)
! 	if isinstance(num, float) or isinstance(den, float):
  		# numerator or denominator is float: return a float
  		return float(num) / float(den)
***************
*** 48,52 ****
  
  		# must check complex before float
! 		if type(num) is ComplexType or type(den) is ComplexType:
  			# numerator or denominator is complex:
  			# normalized form has denominator == 1+0j
--- 48,53 ----
  
  		# must check complex before float
!                 if (isinstance(num, complex) or
!                     isinstance(den, complex)):
  			# numerator or denominator is complex:
  			# normalized form has denominator == 1+0j
***************
*** 54,58 ****
  			self.__den = complex(1)
  			return
! 		if type(num) is FloatType or type(den) is FloatType:
  			# numerator or denominator is float:
  			# normalized form has denominator == 1.0
--- 55,59 ----
  			self.__den = complex(1)
  			return
! 		if isinstance(num, float) or isinstance(den, float):
  			# numerator or denominator is float:
  			# normalized form has denominator == 1.0
***************
*** 60,73 ****
  			self.__den = 1.0
  			return
! 		if (type(num) is InstanceType and
! 		    num.__class__ is self.__class__) or \
! 		   (type(den) is InstanceType and
! 		    den.__class__ is self.__class__):
  			# numerator or denominator is rational
  			new = num / den
! 			if type(new) is not InstanceType or \
! 			   new.__class__ is not self.__class__:
  				self.__num = new
! 				if type(new) is ComplexType:
  					self.__den = complex(1)
  				else:
--- 61,71 ----
  			self.__den = 1.0
  			return
! 		if (isinstance(num, self.__class__) or 
!                     isinstance(den, self.__class__)):
  			# numerator or denominator is rational
  			new = num / den
! 			if not isinstance(new, self.__class__):
  				self.__num = new
! 				if isinstance(new, complex):
  					self.__den = complex(1)
  				else:
***************
*** 166,174 ****
  	def __pow__(a, b):
  		if b.__den != 1:
! 			if type(a.__num) is ComplexType:
  				a = complex(a)
  			else:
  				a = float(a)
! 			if type(b.__num) is ComplexType:
  				b = complex(b)
  			else:
--- 164,172 ----
  	def __pow__(a, b):
  		if b.__den != 1:
! 			if isinstance(a.__num, complex):
  				a = complex(a)
  			else:
  				a = float(a)
! 			if isinstance(b.__num, complex):
  				b = complex(b)
  			else:
***************
*** 297,301 ****
  	for i in list:
  		print i,
! 		if type(i) is not ComplexType:
  			print int(i), float(i),
  		print complex(i)
--- 295,299 ----
  	for i in list:
  		print i,
! 		if not isinstance(i, complex):
  			print int(i), float(i),
  		print complex(i)
***************
*** 303,308 ****
  		for j in list:
  			print i + j, i - j, i * j, i / j, i ** j,
!                         if not (isinstance(i, ComplexType) or
!                                 isinstance(j, ComplexType)):
                                  print cmp(i, j)
                          print
--- 301,306 ----
  		for j in list:
  			print i + j, i - j, i * j, i / j, i ** j,
!                         if not (isinstance(i, complex) or
!                                 isinstance(j, complex)):
                                  print cmp(i, j)
                          print