Saltar al contenido

Importar módulos usando un alias

Si encuentras algo que te causa duda puedes dejarlo en la sección de comentarios y te responderemos tan rápido como podamos.

Solución:

Utilizando import module as name lo hace no crea un alias. Entendiste mal el sistema de importación.

La importación hace dos cosas:

  1. Cargue el módulo en la memoria y almacene el resultado en sys.modules. Esto esta hecho una vez solo; las importaciones posteriores reutilizan el objeto de módulo ya cargado.
  2. Enlaza uno o más nombres en tu espacio de nombres actual.

El as name la sintaxis le permite controlar el nombre en el último paso.

Para el from module import name sintaxis, todavía necesita nombrar el módulo completo, como module se busca en sys.modules. Si realmente desea tener un alias para esto, tendrá que agregar referencias adicionales allí:

import numpy  # loads sys.modules['numpy']
import sys

sys.modules['np'] = numpy  # creates another reference

Sin embargo, hacerlo puede tener efectos secundarios cuando también está importando submódulos. En términos generales, no desea crear alias para paquetes hurgando en sys.modules sin crear también alias para todos los submódulos (posibles), ya que no hacerlo puede hacer que Python vuelva a importar submódulos como espacios de nombres separados.

En este caso específico, importando numpy también desencadena la carga de numpy.linalg, así que todo lo que tienes que hacer es:

import numpy as np
# np.linalg now is available

No se necesita ningún alias de módulo. Para los paquetes que no importan submódulos automáticamente, tendrías que usar:

import package as alias
import package.submodule

y alias.submodule está disponible de todos modos, porque un submódulo siempre se agrega como un attribute en el paquete principal.

Te mostramos comentarios y calificaciones

Si entiendes que te ha sido de ayuda nuestro post, sería de mucha ayuda si lo compartieras con más desarrolladores y nos ayudes a dar difusión a esta información.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *