Давайте начнем с D SOLID и посмотрим на DI и IoC из книги Скотта Миллета «Профессиональные шаблоны проектирования ASP.NET»:
Принцип обращения зависимостей (DIP)
DIP предназначен для изоляции ваших классов от конкретных реализаций и их зависимости от абстрактных классов или интерфейсов. Он продвигает мантру кодирования к интерфейсу, а не к реализации, что повышает гибкость в системе, гарантируя, что вы не тесно связаны с одной реализацией.
Внедрение зависимостей (DI) и инверсия управления (IoC)
С DIP тесно связаны принцип DI и принцип IoC. DI является актом предоставления низкоуровневого или зависимого класса через конструктор, метод или свойство. Используемые вместе с DI, эти зависимые классы могут быть преобразованы в интерфейсы или абстрактные классы, что приведет к слабосвязанным системам, которые легко тестируются и легко изменяются.
В IoC поток управления системой инвертирован по сравнению с процедурным программированием. Примером этого является контейнер IoC , целью которого является внедрение сервисов в клиентский код без указания клиентским кодом конкретной реализации. В этом случае управление, которое инвертируется, является действием клиента, получающего услугу.
Millett, C (2010). Профессиональные шаблоны проектирования ASP.NET. Wiley Publishing. 7-8.
Решено путем полного удаления всех пакетов сайтов. Затем я переустановил Framework Python, переустановил инструменты настройки и easy_installed ipython FTW.
Похоже, вы используете старую версию модуля чтения Python, у меня была проблема , похожая на эту
Ага! У меня была старая версия модуля чтения Python - я установил последнюю из http://ipython.scipy.org/dist/ , и она отлично работает!
sudo easy_install http: //ipython.scipy .org / dist / readline-2.5.1-py2.5-macosx-10.5-i386.egg