В Java IoC/DI является очень распространенная практика, широко используемая в веб-приложениях, почти во всех доступных средах и Java EE. С другой стороны, есть также множество больших веб-приложений Python, но помимо Zope (который, как я слышал, должен быть ужасен для кода), IoC не очень распространен в мире Python. (Пожалуйста, назовите несколько примеров, если вы считаете, что я ошибаюсь).
Конечно, для Python доступны несколько клонов популярных инфраструктур Java IoC, springpython. Но никто из них, похоже, практически не используется. По крайней мере, я никогда не замалчивал Django или sqlalchemy + <insert your favorite wsgi toolkit here>
, использующее что-то подобное.
По моему мнению, IoC имеет разумные преимущества и упростит замену django-default-user-model, но широкое использование классов интерфейса и IoC в Python выглядит немного странно, а не "pythonic". Но, возможно, у кого-то есть лучшее объяснение, почему IoC широко не используется в Python.