Русский
Открыть в Telegram

Пост Если вы создаёте новые объекты внутри метода __init__, возможно, будет лучше передавать их как аргументы и использовать …

17 февраля 2026
Б
Библиотека Python разработчика | Книги по питону
Если вы создаёте новые объекты внутри метода __init__, возможно, будет лучше передавать их как аргументы и использовать фабричный метод. Это позволяет разделить бизнес-логику и технические детали создания объектов. В этом примере __init__ принимает host и port для создания подключения к базе данных: class Query: def __init__(self, host, port): self._connection = Connection(host, port) Возможный рефакторинг: class Query: def __init__(self, connection): self._connection = connection @classmethod def create(cls, host, port): return cls(Connection(host, port)) Такой подход имеет как минимум следующие преимущества: • Упрощает внедрение зависимостей. В тестах можно использовать Query(FakeConnection()). • Класс может иметь столько фабричных методов, сколько нужно; подключение может создаваться не только по host и port, но и путём клонирования другого подключения, чтения конфигурационного файла или объекта, использования значения по умолчанию и т.д. • Такие фабричные методы можно сделать асинхронными; это невозможно для __init__. 📲 Мы в MAX 👉@BookPython
11 · 1.8K ·

Рядом в ленте

ББиблиотека Python разработчика | Книги по питонуВ Python очень короткий список встроенных констант. Одна из них — Ellipsis, которую также можно записать как .... Эта константа не имеет особого значения для инББиблиотека Python разработчика | Книги по питонуЧтобы сохранить любую информацию в памяти или на устройстве хранения, её необходимо представить в виде байтов. Python, как правило, предоставляет уровень абстра
это сообщение
ББиблиотека Python разработчика | Книги по питонуСегодня я покажу вам простой, но очень полезный приём, который часто выручает при работе с Python-скриптами — автоматическое логирование вызовов функций с помощББиблиотека Python разработчика | Книги по питонуОдна и та же строка может быть представлена по-разному в Unicode, и стандарт это учитывает. Он определяет два типа эквивалентности: последовательности могут быт
ББиблиотека Python разработчика | Книги по питонуБиблиотека Python разработчика | Книги по питону@BookPython · канал · Технологии
17 943подписчиков725средний охват поста
Лента площадки Открыть в Telegram

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Границы индекса · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем