Я пытаюсь создать свой собственный класс Fractions и свой собственный класс Numbers для проекта, над которым я работаю. Мне было интересно, как я могу изменить класс класса фракций на число, если знаменатель равен 1.
Когда я посмотрел на эту проблему, я наткнулся на приведение и попытался включить это в свой кодОднако класс все еще не изменился.
class Number():
def __init__(self,number):
if isinstance(number,int):
self.number = number
elif isinstance(number, Fraction) and number.denominator == 1:
self.number = number.numerator
else:
raise TypeError()
class Fraction():
def __init__(self, numerator, denominator=Number(1)):
self.denominator = denominator
self.numerator = numerator
if self.denominator == 1:
self.__class__ == Number
print(type(Fraction(5)))
#I expected to get <class '__main__.Number'> but instead got <class '__main__.Fraction'>