I have created a class Rational with multiple methods. If it is initialized as follows
r = Rational(49, 168)
I want this to be true:
print(r.get_num() == 7 and r.get_denom() == 24)
I've written this code, which crashes, saying 'NameError: name 'highest_common_denominator' is not defined.
class Rational:
def __init__(self, numerator, denominator=1):
self.numerator = numerator
self.denominator = denominator
def cd_numerators(self):
list_cd_numerators = []
for i in range(1, self.numerator):
if self.numerator % i == 0:
list_cd_numerators.append(i)
return list_cd_numerators
def cd_denominators(self):
list_cd_denominators = []
for i in range(1, self.denominator):
if self.denominator % i == 0:
list_cd_denominators.append(i)
return list_cd_denominators
def highest_common_denominator(self, a, b):
highest_common_denominator1 = 1
for i in a:
if i in b:
highest_common_denominator1 = i
return highest_common_denominator1
def get_num(self):
common_denominator = highest_common_denominator(cd_numerators, cd_denominators)
numerator = self.numerator / common_denominator
self.numerator = numerator
return self.numerator
def get_denom(self):
common_denominator = highest_common_denominator(cd_numerators, cd_denominators)
denominator = self.denominator / common_denominator
self.denominator == denominator
return self.denominator
I cannot understand what I'm doing wrong and would be appreciative of some help.