ООП в Python #6

В нашем новом уроке по основам ООП на Python мы рассмотрим магические методы и перегрузку операторов. Магические методы позволяют нам изменять поведение объектов при использовании стандартных операций, таких как сложение или сравнение.

🔸Что такое магические методы? Магические методы – это специальные методы, которые начинаются и заканчиваются двойным подчеркиванием __. Эти методы позволяют вам перегружать стандартные операторы и методы для пользовательских классов.

🔹Пример магических методов Рассмотрим класс Vector с перегруженными операторами сложения и строкового представления:

class Vector:
    def __init__(self, x, y):
        self.x = x
        self.y = y

    def __add__(self, other):
        return Vector(self.x + other.x, self.y + other.y)

    def __str__(self):
        return f"Vector({self.x}, {self.y})"

🔹Перегрузка оператора сложения Создадим два объекта класса Vector и сложим их:

v1 = Vector(2, 3)
v2 = Vector(4, 5)
v3 = v1 + v2
print(v3)  # Вывод: Vector(6, 8)

Метод add позволяет использовать оператор + для сложения двух объектов Vector.

🔹Другие магические методы Вот несколько часто используемых магических методов:init: Инициализация объекта (конструктор).repr: Официальное строковое представление объекта.str: Читаемое строковое представление объекта.len: Возвращает длину объекта.eq: Проверка на равенство объектов.lt: Проверка, что один объект меньше другого.

🔹Пример использования нескольких магических методов Дополнительно добавим методы eq и repr в класс Vector:

class Vector:
    def __init__(self, x, y):
        self.x = x
        self.y = y

    def __add__(self, other):
        return Vector(self.x + other.x, self.y + other.y)

    def __eq__(self, other):
        return self.x == other.x and self.y == other.y

    def __repr__(self):
        return f"Vector({self.x}, {self.y})"

    def __str__(self):
        return f"Vector({self.x}, {self.y})"

🔹Использование новых магических методов Создадим и сравним два объекта класса Vector:

v1 = Vector(2, 3)
v2 = Vector(2, 3)
v3 = Vector(4, 5)

print(v1 == v2)  # Вывод: True
print(v1 == v3)  # Вывод: False
print(repr(v1))  # Вывод: Vector(2, 3)

🔸Заключение Магические методы и перегрузка операторов позволяют вам изменять поведение объектов в Python и создавать более удобные и интуитивно понятные интерфейсы. В следующем уроке мы рассмотрим практические примеры использования ООП в реальных проектах. Оставайтесь с нами! 🚀

➡️Читайте нас в Telegram и Сетке

#CODERIKK #Python #ООП #МагическиеМетоды #Программирование #Обучение

ООП в Python #6
В нашем новом уроке по основам ООП на Python мы рассмотрим магические методы и перегрузку операторов | Сетка — социальная сеть от hh.ru