Я изучаю Python, и я нашел код для дроби ниже.Класс Fraction имеет метод __add__
, возвращение которого вызывает класс Fraction.(return Fraction(new_num // common, new_den // common)
).
Я не совсем понимаю, как метод может вызывать класс, частью которого он является.Я имею в виду, что интерпретатор даже не полностью завершил чтение класса Fraction (после метода __add__
есть метод __eq__
), когда метод __add__
вызывает класс Fraction.Что, если метод __add__
хотел бы использовать метод classes __eq__
, когда метод __eq__
находится ниже него?
class Fraction:
def __init__(self, top, bottom):
self.num = top
self.den = bottom
def __str__(self):
return str(self.num) + "/" + str(self.den)
def show(self):
print(self.num, "/", self.den)
def __add__(self, other_fraction):
new_num = self.num * other_fraction.den + \
self.den * other_fraction.num
new_den = self.den * other_fraction.den
common = gcd(new_num, new_den)
return Fraction(new_num // common, new_den // common)
def __eq__(self, other):
first_num = self.num * other.den
second_num = other.num * self.den
return first_num == second_num