"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo resolver el problema \"AttributeError: \'module\' no tiene atributo\" en Python con importaciones mutuas de nivel superior?

¿Cómo resolver el problema \"AttributeError: \'module\' no tiene atributo\" en Python con importaciones mutuas de nivel superior?

Publicado el 2024-11-08
Navegar:897

How to Resolve the \

AttributeError: el objeto 'módulo' no tiene atributo

Al ejecutar el módulo Python a.py con importaciones mutuas de nivel superior, se encuentra el error "AttributeError: el objeto 'módulo' no tiene el atributo 'hola'". Este error se produce debido a una configuración problemática en las declaraciones de importación de ambos módulos.

En a.py, importa el módulo b y llama a su función hi(). Sin embargo, en el b.py al que se hace referencia, no hay ningún atributo hi. Esto da como resultado un error que indica que no se puede acceder a la función hi() desde b dentro del contexto de a.

Para rectificar este problema, generalmente no es recomendable tener importaciones mutuas de nivel superior como esta. En su lugar, considere importar módulos dentro de funciones de la siguiente manera:

# In b.py:
def cause_a_to_do_something():
    import a
    a.do_something()

Al encapsular la importación dentro de una función en b.py, permite que a.py importe b de forma segura sin activar el error. Además, este enfoque garantiza que la operación de importación solo se produzca una vez, a pesar de que la función se llame varias veces.

Declaración de liberación Este artículo se reimprime en: 1729398916 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3