AttributeError: объект 'module' не имеет атрибута
При запуске модуля Python a.py с взаимным импортом верхнего уровня вы сталкиваетесь ошибка «AttributeError: объект «модуль» не имеет атрибута «привет»». Эта ошибка возникает из-за проблемной настройки операторов импорта обоих модулей.
В a.py вы импортируете модуль b и вызываете его функцию hi(). Однако в указанном файле b.py атрибут hi отсутствует. Это приводит к ошибке, указывающей на то, что функция hi() недоступна из b в контексте a.
Чтобы исправить эту проблему, обычно не рекомендуется выполнять взаимный импорт верхнего уровня, подобный этому. Вместо этого рассмотрите возможность импорта модулей внутри функций следующим образом:
# In b.py:
def cause_a_to_do_something():
import a
a.do_something()
Инкапсулируя импорт внутри функции в b.py, вы позволяете a.py безопасно импортировать b, не вызывая ошибки. Кроме того, этот подход гарантирует, что операция импорта произойдет только один раз, несмотря на то, что функция вызывается несколько раз.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3