2010-11-03 2 views
0

У меня есть три класса, которые должны импортировать методы друг друга. Заявления будет выглядеть следующим образом в соответствующих файлах с классами:Почему я не могу импортировать этот класс?

Файл А с классом

from B import b 

Файл B с классом б

from C import c 

Файл C с классом с

from A import a 

Почему это не работает в python? Я скорее получу сообщение об ошибке:

ImportError: cannot import name a 
+4

Циркулярный импорт, помимо того, что вы можете сильно укусить вас, также редко (если когда-либо) необходим и обычно демонстрирует недостатки дизайна. Старайтесь избегать их. Что касается проблем импорта в целом, то содержимое этих файлов и фактические имена файлов (обычно) имеют значение. – delnan

+0

Возможный дубликат [Циркулярная зависимость импорта в Python] (http://stackoverflow.com/questions/1556387/circular-import-dependency-in-python) – SilentGhost

+0

Спасибо, что заметили, что я не был знаком с циклическим импортом терминологии. – Ingo

ответ

2

У вас есть классическая проблема с круговой проблемой в Python. Вы взглянули на предыдущие вопросы о SO, например this one?

+0

Спасибо, не знал, что это называется циклическим импортом, что исправляет мою проблему. – Ingo

0

Python не может найти его. Является ли он в правильном каталоге, действительно ли он существует?

+0

О да, абсолютно! Удвоенный проверил это. – Ingo

Смежные вопросы