Sobes.tech
Back to questions
Junior — Middle
74

Можешь ли ты назвать основные специальные методы в Python и их назначение?

Answer from AI

sobes.tech AI

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

Основные из них:

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

Пример использования __str__ и __repr__:

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

    def __str__(self):
        return f"Точка ({self.x}, {self.y})"

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

p = Point(1, 2)
print(str(p))  # Точка (1, 2)
print(repr(p)) # Point(x=1, y=2)