ООП в 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 #ООП #МагическиеМетоды #Программирование #Обучение