Встречается на собеседованиях • сегодня

Что такое циклический импорт в Python

Циклический импорт возникает, когда два или более модуля зависят друг от друга, создавая замкнутый круг импортов. Например, модуль A импортирует модуль B, а модуль B импортирует модуль A. Python не может корректно обработать такую ситуацию, что приводит к ошибкам или неожиданному поведению.

Пример циклического импорта:

python
# module_a.py
from module_b import func_b

def func_a():
    return "Function A"

# module_b.py
from module_a import func_a

def func_b():
    return "Function B"

Как избежать:

  1. Реорганизовать код, вынеся общую логику в третий модуль.
  2. Использовать импорт внутри функций/методов, а не на уровне модуля.
  3. Применить ленивый импорт с помощью importlib или строковых аннотаций (для типов).

Лучшая практика — проектировать модули так, чтобы зависимости были однонаправленными.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы