Когда оболочка import
модуль один, я думал, что один будет импортировать два и запустить код два так будет импортировать три автоматически. Таким образом, три названия модулей будут включены в список dir()
.пространство имен циркулярной импорта
Фактически, когда я проверяю пространство имен, только модуль один (см. Ниже).
Как можно напечатать 'Hello'
без включения в пространство имен модуля два и три? Поскольку one.f1()
полагается на оба модуля.
>>> ================================ RESTART ================================
>>> import one
in three
In two
in one
>>> dir()
['__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'one']
>>> one.f1()
Hello
>>>
'one.py'
import two
print('in one')
def f1():
two.f2()
def f4():
print ('Hello')
'two.py'
import three
print ('In two')
def f2():
three.f3()
'three.py'
import one
print('in three')
def f3():
one.f4()
Спасибо! Вы полностью решили мой вопрос. –