Sobes.tech
Назад к вопросам
Middle
7

Что такое магические методы в Python? Какие знаешь?

Компании, где спрашивали
Gear Games

Ответ от нейросети

sobes.tech AI

Магические методы в Python — это специальные методы с двойным подчеркиванием в начале и конце имени (например, __init__, __str__), которые позволяют изменять поведение объектов и классов.

Некоторые из часто используемых магических методов:

  • __init__(self, ...) — конструктор объекта.
  • __str__(self) — строковое представление объекта для пользователя.
  • __repr__(self) — официальное строковое представление объекта.
  • __len__(self) — возвращает длину объекта.
  • __getitem__(self, key) — доступ к элементам по индексу или ключу.
  • __setitem__(self, key, value) — установка значения по ключу.
  • __delitem__(self, key) — удаление элемента.
  • __iter__(self) — возвращает итератор.
  • __next__(self) — возвращает следующий элемент итератора.
  • __call__(self, ...) — позволяет объекту быть вызываемым как функция.
  • __eq__(self, other), __lt__(self, other) и другие — операторы сравнения.

Пример:

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

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

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

v1 = Vector(1, 2)
v2 = Vector(3, 4)
print(v1)        # Vector(1, 2)
v3 = v1 + v2
print(v3)        # Vector(4, 6)