W Javie IoC / DI jest bardzo powszechną praktyką, która jest szeroko stosowana w aplikacjach internetowych, prawie wszystkich dostępnych frameworkach i Java EE. Z drugiej strony istnieje również wiele dużych aplikacji internetowych w Pythonie, ale oprócz Zope (które, jak słyszałem, powinno być naprawdę okropne w kodowaniu), IoC nie wydaje się bardzo powszechne w świecie Pythona. (Proszę podać kilka przykładów, jeśli uważasz, że się mylę).
Istnieje oczywiście kilka klonów popularnych frameworków Java IoC dla Pythona, na przykład springpython . Ale żaden z nich nie wydaje się przyzwyczajony praktycznie. Przynajmniej nigdy nie natknąłem się na aplikację internetową opartą na Django lub sqlalchemy + <insert your favorite wsgi toolkit here>
, która używa czegoś takiego.
Moim zdaniem IoC ma rozsądne zalety i ułatwiłoby na przykład zastąpienie domyślnego modelu użytkownika django, ale szerokie użycie klas interfejsów i IoC w Pythonie wygląda nieco dziwnie, a nie »pythonowo«. Ale może ktoś ma lepsze wytłumaczenie, dlaczego IoC nie jest powszechnie używany w Pythonie.