Для следующего кода Python:У всех динамических языков есть проблема с циклическим импортом?
first.py
# first.py
from second import Second
class First:
def __init__(self):
print 'Second'
second.py
# second.py
from first import First
class Second:
def __init__(self):
print 'Second'
После создания файлов и запуск следующих из оболочки:
python first.py
Я получаю сообщение об ошибке: ImportError: cannot import name Second
Есть ли другие динамические языки, такие как Ruby, такого рода проблемы? Причина, по которой я спрашиваю, заключается в том, что я сталкиваюсь с этой проблемой в проекте Django, где 2 модели зависят друг от друга. Я знаю, что возможные решения - это перепроектирование проекта или импорт по требованию. Я просто хочу знать, столкнулись ли разработчики других динамических языков с этой проблемой.
Вы всегда должны подклассифицировать «объект», а не ничего, чтобы вы использовали классы нового стиля. –
@ Майк, он не уточнил свою версию Python. –
@Hamish Grubijan, i) Он использовал оператор печати, который ушел на Python 3, ii) Он сказал, что использует Django, который не поддерживает Python 3, и iii) никто не использует Python 3; Python 2 - разумное предположение по умолчанию. –