Я читал загрузку модулей с here.AttributeError: объект 'module' не имеет атрибута 'x'
Есть два файла в одном из моих справочников mod_a.py
и mod_b.py
.
mod_a.py
содержит следующие
print 'at top of mod_a'
import mod_b
print 'mod_a: defining x'
x = 5
в то время как mod_b.py
содержит
print 'at top of mod_b'
import mod_a
print 'mod_b: defining y'
y = mod_a.x
на выполнение mod_a.py
файла я получил следующий вывод:
at top of mod_a
at top of mod_b
at top of mod_a
mod_a: defining x
mod_b: defining y
mod_a: defining x
Однако при выполнении mod_b.py
I г от следующего выпуска:
at top of mod_b
at top of mod_a
at top of mod_b
mod_b: defining y
Traceback (most recent call last):
File "D:\Python\Workspace\Problems-2\mod_b.py", line 2, in <module>
import mod_a
File "D:\Python\Workspace\Problems-2\mod_a.py", line 2, in <module>
import mod_b
File "D:\Python\Workspace\Problems-2\mod_b.py", line 4, in <module>
y = mod_a.x
AttributeError: 'module' object has no attribute 'x'
Может кто-нибудь объяснить это?
У вас есть круговой импорт. Не делай этого; это то, что происходит, когда вы это делаете. – user2357112
@ user2357112, Спасибо, я пробовал это для обучения и практики. Не могли бы вы объяснить, как именно здесь циркулирует импорт? –
https://docs.python.org/2/faq/programming.html#how-can-i-have-modules-that-mutually-import-each-other – user2357112