Why is IoC / DI not common in Python?

На явеIoC / DI это очень распространенная практика, которая широко используется в веб-приложениях, почти во всех доступных средах и Java EE. С другой стороны, есть также много больших веб-приложений на Python, но кроме Zope (который, как я слышал, должно быть ужасно кодировать), IoC, похоже, не очень распространен в мире Python. (Пожалуйста, назовите несколько примеров, если вы считаете, что я ошибаюсь).

Конечно, есть несколько клонов популярных фреймворков Java IoC, доступных для Python,springpython например. Но, похоже, практически никто из них не привык. По крайней мере, я никогда не сталкивалась сДжанго или жеSQLAlchemy+<insert your favorite wsgi toolkit here> веб-приложение, которое использует что-то подобное.

На мой взгляд, IoC имеет разумные преимущества и позволит легко заменить django-default-user-model, например, но широкое использование классов интерфейса и IoC в Python выглядит немного странно и не «pythonic». Но, возможно, у кого-то есть лучшее объяснение, почему IoC не широко используется в Python.

Ответы на вопрос(14)

Ваш ответ на вопрос