Sobes.tech
Back to questions
Junior — Middle
68

Можешь рассказать о магических методах, которые ты знаешь в языке программирования?

Companies where asked
LC-Group
ООО Цитадель
СБЕР РоботыСБЕР Роботы
Атом Безопасность
АО К-Технологии

Answer from AI

sobes.tech AI

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

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

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

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

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def __str__(self):
        return f"{self.name}, {self.age} лет"

    def __repr__(self):
        return f"Person(name={self.name!r}, age={self.age})"

p = Person("Иван", 30)
print(str(p))  # Иван, 30 лет
print(repr(p)) # Person(name='Иван', age=30)

Магические методы позволяют создавать более «питоничный» и удобный в использовании код.