Учитывая эту простую структуруВзаимный импорт; Разница между Standart ИМПОРТ, в «от» и «как» синтаксис
/main.py
/project/a.py
/project/b.py
main.py
папки выполняется с помощью интерпретатора и содержит одну строку, import project.a
.
a
и b
- это модули, им необходимо импортировать друг друга. Способ достижения этой цели будет
import project.[a|b]
При работе с более глубокой вложенной структурой папок вы не хочешь, чтобы написать весь путь каждый раз, когда вы используете модуль, например,
import project.foo.bar
project.foo.bar.set_flag(project.foo.bar.SUPER)
Оба from project import [a|b]
и import project.[a|b] as [a|b]
результат ошибки импорта (при использовании в обоих, a
и b
).
Что нового между синтаксисом стандартного импорта и синтаксисом from
или as
? Почему для взаимного импорта работает только стандартный синтаксис?
И что еще более важно, существует простой и чистый способ импорта модулей, которые позволяют взаимный импорт и присваивать им более короткие имена (в идеале базовое имя модулей, например bar
, в случае project.foo.bar
)?
Обратите внимание на [круглый вопрос импорта] (http://stackoverflow.com/q/744373/180709) и возвращайтесь с более подробной ошибкой, если она не решит вашу проблему. – zopieux
@ Zopieux Я знаю, как работает система импорта, и нет ошибки. Я просто ищу способ импортировать модули и назначать им более короткие имена при импорте друг друга. – timakro
Я думаю, что 'import a' и' import b' должны быть точными – danidee