Беседа с python, как обычно, он бросает мой жесткий статический типизированный объектно-ориентированный мир в битву. Python поддерживает печать утинов, не имеет пригодной для использования концепции программирования на основе интерфейса (как в интерфейсах С#) и допускает глобальные переменные. Со всеми этими позитивами действительно существует какая-либо точка для контейнера инъекций зависимости или время выполнения Python становится контейнером.
Я понимаю суть этих контейнеров в статических типизированных языках OO, таких как Java и С#, но где бы такая штука вписывалась в ореховый мир питона (мне это нравится)?
Я всегда подозревал, что инъекция зависимостей как шаблон дизайна плохой запах, который был создан всем, должен быть классом "нацистское мышление", то есть С# и Java, я был бы прав или есть что-то, чего я не вижу?
До сих пор я думаю, что могу охватывать фабрики, объекты Singletons, Multi-instance, просто используя Globals. Я также подозреваю, что материал Aspect также включен, хотя я все еще думаю об этом.
The Duck Typing - это то, что меня сейчас привлекает, поэтому используется для определения интерфейсов, а затем основывает классы на этих интерфейсах и позволяет статическим материалам покрывать мою глупость, что я чувствую, что без статической типизации контейнеры немного бесполезны.
изменить
Я думаю, что я не буду использовать фреймворки/контейнеры Dependency Injector при использовании python. На самом деле нет смысла. Подумав и прочитав ответы до сих пор, аргумент становится ясным, что без определения статического типа promises настолько расплывчаты, что вообще беспокоиться. Утиная печать - это то, что есть, и единственное обещание может быть сделано посредством документации. Пока ссылка входит в класс Method/function через параметр signiture и не проходит через эфир среды программирования, я думаю, что я буду в безопасности.
Тревожный факт заключается в том, что я не могу принудить свою волю к другим с помощью моих методов проектирования несущих конструкций, как это было на Java и С#. Меня волнует...... nah:)