«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как решить проблему «AttributeError: объект «модуль» не имеет атрибута» в Python с взаимным импортом верхнего уровня?

Как решить проблему «AttributeError: объект «модуль» не имеет атрибута» в Python с взаимным импортом верхнего уровня?

Опубликовано 8 ноября 2024 г.
Просматривать:188

How to Resolve the \

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, не вызывая ошибки. Кроме того, этот подход гарантирует, что операция импорта произойдет только один раз, несмотря на то, что функция вызывается несколько раз.

Заявление о выпуске Эта статья перепечатана по адресу: 1729398916. В случае каких-либо нарушений, пожалуйста, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3