Python Portal
56.1K subscribers
2.41K photos
385 videos
51 files
981 links
Всё самое интересное из мира Python

Связь: @devmangx

РКН: https://clck.ru/3GMMF6
Download Telegram
Истинная природа методов — это «специальные методы».

Про жизненный цикл инстанса.

▪️__init__

object.__init__(self[, ...])

Думаю, как конструктор используется очень часто. В основном это инициализация экземпляра (например, инициализация атрибутов). Отличие от __new__, о котором ниже: __init__ выполняется уже после создания экземпляра.
Возвращаемое значение всегда None.

▪️ __new__

object.__new__(cls[, ...])

В отличие от __init__, выполняется до создания экземпляра и отвечает именно за его создание. Поэтому это не инстанс-метод, а статический метод, но явно прописывать @staticmethod не нужно.
Возвращаемое значение должно быть созданным экземпляром (обычно это экземпляр класса из аргумента cls).

Типичное место применения __new__ это инициализация подклассов, которые наследуются от иммутабельных типов (int, str, tuple и т.д.). Они иммутабельные, поэтому после создания объекта нельзя менять атрибуты через __init__.

Ещё __new__ используют для реализации паттерна Singleton.

▪️ __del__

object.__del__(self)

Вызывается в момент, когда экземпляр уничтожается (например, через del). Явных популярных кейсов немного, но может быть полезно при отладке, чтобы понимать тайминг работы GC.

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍3😢1
This media is not supported in your browser
VIEW IN TELEGRAM
Любой может программировать с помощью ИИ.

Вы используете ИИ без базовых знаний программирования:

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥26😁19👍4
This media is not supported in your browser
VIEW IN TELEGRAM
GitHub запустил свою платформу для обучения: все курсы и сертификаты в одном месте.

Git, GitHub, MCP, использование ИИ, VSCode и многое другое.

И большая часть контента бесплатна: → https://learn.github.com

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
26