Глава 6. Модули
240
любая попытка кода модуля b получить немедленный
доступ к атрибуту модуля a,
который к этому времени еще не был связан, приведет к возникновению ошибки.
Если в силу каких-то причин вы все же хотите использовать циклический импорт,
то вам
следует тщательно продумать, в какой очередности каждый из модулей должен
связывать свои глобальные переменные, импортировать
другие модули и получать до-
ступ к атрибутам других модулей. Вы можете получить больший контроль над после-
довательностью развития событий, группируя свои инструкции в
функции и вызывая
эти функции в контролируемой очередности, а не просто полагаться на последователь-
ность выполнения инструкций верхнего уровня в телах модулей.
Обычно проще отка-
заться от циклического импорта, чем пытаться гарантировать совершенно безопасный
порядок выполнения операций в случае циклического импорта.
Do'stlaringiz bilan baham: