From 4f237b6870bc856e2af5f23e524a9d32cd42e027 Mon Sep 17 00:00:00 2001 From: "Andrew M. Kuchling" Date: Thu, 24 Apr 2003 17:04:45 +0000 Subject: Modernize code by using isinstance() instead of type() checks --- Demo/classes/Rat.py | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/Demo/classes/Rat.py b/Demo/classes/Rat.py index 9e0c05d..b81f19f 100755 --- a/Demo/classes/Rat.py +++ b/Demo/classes/Rat.py @@ -28,10 +28,10 @@ def gcd(a, b): def rat(num, den = 1): # must check complex before float - if type(num) is ComplexType or type(den) is ComplexType: + if isinstance(num, complex) or isinstance(den, complex): # numerator or denominator is complex: return a complex return complex(num) / complex(den) - if type(num) is FloatType or type(den) is FloatType: + if isinstance(num, float) or isinstance(den, float): # numerator or denominator is float: return a float return float(num) / float(den) # otherwise return a rational @@ -47,28 +47,26 @@ class Rat: # normalize # must check complex before float - if type(num) is ComplexType or type(den) is ComplexType: + if (isinstance(num, complex) or + isinstance(den, complex)): # numerator or denominator is complex: # normalized form has denominator == 1+0j self.__num = complex(num) / complex(den) self.__den = complex(1) return - if type(num) is FloatType or type(den) is FloatType: + if isinstance(num, float) or isinstance(den, float): # numerator or denominator is float: # normalized form has denominator == 1.0 self.__num = float(num) / float(den) 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__): + if (isinstance(num, self.__class__) or + isinstance(den, self.__class__)): # numerator or denominator is rational new = num / den - if type(new) is not InstanceType or \ - new.__class__ is not self.__class__: + if not isinstance(new, self.__class__): self.__num = new - if type(new) is ComplexType: + if isinstance(new, complex): self.__den = complex(1) else: self.__den = 1.0 @@ -165,11 +163,11 @@ class Rat: # a ** b def __pow__(a, b): if b.__den != 1: - if type(a.__num) is ComplexType: + if isinstance(a.__num, complex): a = complex(a) else: a = float(a) - if type(b.__num) is ComplexType: + if isinstance(b.__num, complex): b = complex(b) else: b = float(b) @@ -296,14 +294,14 @@ def test(): list = [2, 1.5, rat(3,2), 1.5+1.5j] for i in list: print i, - if type(i) is not ComplexType: + if not isinstance(i, complex): print int(i), float(i), print complex(i) print for j in list: print i + j, i - j, i * j, i / j, i ** j, - if not (isinstance(i, ComplexType) or - isinstance(j, ComplexType)): + if not (isinstance(i, complex) or + isinstance(j, complex)): print cmp(i, j) print -- cgit v0.12