TGViewer
Python Portal Python Portal @pythonportal · 50.5K subscribers
Post #4519 11.9K
Многие разработчики на Python считают метод __init__() конструктором, но на самом деле это не так.

Настоящий конструктор в Python — это метод __new__(). Давайте разберёмся, как это доказать, на небольшом примере.

Сначала добавим несколько print-вызовов в метод __init__(), чтобы понять, что происходит при создании экземпляра класса: (2 фото)

Теперь добавим метод __new__() и посмотрим, вызывается ли __init__() до или после __new__(). (3 фото)

Если запустить этот код, станет видно, что первым вызывается именно метод __new__()

Хочу отметить, что в большинстве случаев вам не придётся использовать метод __new__() в своём коде. На практике он применяется почти исключительно в метапрограммировании, фабричных функциях и при работе с API — по крайней мере, из того, что мне доводилось видеть.

Так что продолжайте спокойно использовать проверенный метод __init__() — он по-прежнему отлично справляется со своей задачей 😄

👉 @PythonPortal
  • 👍 36
  • ❤ 16
  • 💊 8
  • 🔥 5
  • 🤔 2
  • 👀 1
More from @pythonportal
  1. Oct 14, 2026Основатели ElevenLabs сейчас, должно быть, дрожат от страха… Эти ребята только что выпусти…
  2. Oct 14, 20265 архитектур RAG Большинство RAG-систем ломаются в одном и том же месте. Проблема не в мод…
  3. Oct 13, 2026Если ищете хороший видеокурс по 3D-математике для игр, в котором сочетаются теория и практ…
  4. Oct 13, 2026👁👁 Тестовый собес на Python с разработчиком из Яндекса [+ ответы на 50 сложных вопросов…
  5. Oct 13, 2026NVIDIA действительно устранила одно из главных ограничений голосового ИИ. Компания открыла…
  6. Oct 12, 2026«Матричное дифференциальное исчисление для машинного обучения и не только» — бесплатный ку…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →