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

Пост ✈️Зависимость (dependency) — это внешний объект, который нужен какому-то компоненту для работы. Внедрение зависимостей (…

17 июля 2025
P
Pythoner
Фотография
✈️Зависимость (dependency) — это внешний объект, который нужен какому-то компоненту для работы. Внедрение зависимостей (Dependency Injection) — это способ передать нужные зависимости извне, а не создавать их внутри. ➡️Простой пример: class Engine: def start(self): print("Engine started") class Car: def __init__(self, engine: Engine): self.engine = engine def run(self): self.engine.start() ⬆️Здесь Car не создает Engine внутри себя. Внедрение происходит через конструктор. engine = Engine() car = Car(engine) # <-- внедрили зависимость car.run() ➡️Как реализовать вручную в Python? В Python DI часто реализуется через: 1. Конструктор (constructor injection): class Service: def __init__(self, db_client): self.db = db_client 2. Setter-инъекция (через метод): class Service: def set_db(self, db_client): self.db = db_client 3. Передача через параметры функции: def handler(service: Service): return service.do_stuff() ➡️Зачем это нужно? - Легко тестировать (можно подменить зависимости моками) - Повышает гибкость (меняем реализацию зависимости) - Разделяет ответственность (класс делает только то, что должен) 🐍 Pythoner
19 · 2K ·

Рядом в ленте

PPythoner✈️Модульные тесты (или unit-тесты) — это автоматические тесты, которые проверяют работу отдельных функций, методов или классов в изоляции от остальной программыPPythoner✈️Основное различие между этими двумя методами состоит в том, что __new__ обрабатывает создание объекта, а __init__ обрабатывает его инициализацию. __new__ вызы
это сообщение
PPythonerФотографияPPythonerОпрос

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

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