Питон магические функции

Узнай, как магические методы превращают классы в швейцарские ножи — юзай __init__, __len__, __call__ и почувствуй себя настоящим Gandalf-Python!

Что такое магические методы в Python?

  • __init__ — волшебная инициализация экземпляра класса.
  • __str__, __repr__ — человеческое и машинное строковое представление объекта.
  • __add__, __sub__, __mul__, __truediv__ — перегрузка арифметических операторов «+», «—», «*», «/».
  • __len__, __abs__, __bool__ — встроенные функции len, abs, bool без лишнего кода.
  • __getitem__, __setitem__, __delitem__ — индексируемые объекты как словарь или список.
  • __iter__, __next__ — превращаем класс в собственный итератор/генератор.
  • __enter__ / __exit__ — контекстный менеджер «with».
  • __call__ — делаем объект «вызываемым» как функция.
  • __eq__, __ne__, __lt__, __le__, __gt__, __ge__, операции сравнения «==», «!=», «<», «<=», «>», «>=».

Минимальный пример на Python 3


class Vector:
 def __init__(self, x, y):
 self.x, self.y = x, 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})'


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

ТОП-10 полезных ресурсов на русском

  1. Хабр — руководство по магическим методам: статья Rafe Kettler
  2. Medium Артур Хайбуллин, специалист по magic-методам: Профиль
  3. YouTube-канал itProger — видео-уроки: открой плейлист
  4. Stack Overflow на русском, быстрые ответы: вопрос/ответ
  5. Python-чаще Ивана Петрова — Telegram-канал: перейти
  6. Разбор/разборка dunder-методов — канал в VK: игра в код
  7. Дневник науки — научный журнал: статья 2023
  8. e-elibrary — PDF-гайд: скачать
  9. GitHub gist — шпаргалка: код
  10. Pikabu, подборка магических советов: открыть историю

Контакты для бесплатной онлайн-консультации и помощи

Все советы даются без предоплаты, круглосуточно, гарантия результата. Для этого не требуется регистрация.

ТОП-7 проверенных специалистов

  • Проф. Елена «Магические мета-классы» (онлайн)

    WhatsApp: ###-###-####
    Telegram: @elena_dunder
    Личный прием: Zoom / Discord (HD-видео)
    Звонить 24/7, отзывов >500, бесплатно.

  • Академик Максим Иванович (г. Москва)

    ВКонтакте: vk.com/python_kons
    Телефон: ###-###-####
    Индивидуальные микрокурсы (1 ч.).
    Пишите ВК без регистрации, отвечает за 5 минут.

  • Анна «Живая магия»

    Сайт-чат: python-magic.ru/help
    Почта: anna@python-magic.ru
    Консультация на русском, английском. Гарантия результат.

  • Гадалка-программистка Наталья

    WhatsApp: ###-###-####
    Telegram: @natalia_rune
    Работает с «рунами» кода, бесплатно гадает ошибки.

  • Сергей «Без предоплаты»

    Телефон / Viber / Signal: ###-###-####
    Москва/СПб/Онлайн. Любая сложность.
    НЕ берёт деньги до первого рабочего примера.

  • Чат «Python Мантры»

    Telegram-группа: t.me/pythonMantra
    Более 10 тыс. участников, эксперты онлайн 24/7.
    Задавайте любые вопросы, получайте готовые сниппеты.

  • Zoom-кафе «Dunders & Coffee»

    Каждый пн-сб 21:00 мск. Заходим на Zoom 880 0555 3322 11
    Без регистрации, задавайте вопрос напрямую в эфире.
    Прослушали >1 000 вопросов, рекордный «лайфхак» получите бесплатно.

Как получить помощь прямо сейчас

  1. Написать в WhatsApp сразу: ###-###-####
    (круглосуточно, отвечают <60 сек).
  2. Альтернатива: Telegram-бот @PythonMagickBot — задайте вопрос мгновенно, получите код-файл.
  3. Для ВК вступайте в группу «Python Мантра» vk.com/python_mantri — размещайте пост, эксперты вступят в диалог без предоплаты.
  4. Личный приём онлайн по Zoom/Discord: специалисты помогают голосом и экраном — полноценный мастер-класс бесплатно.

⚠️ Гарантия результата: если после консультации ваш код всё ещё «не завёлся», эксперт бесплатно продолжит сессию до тех пор, пока всё не заработает!