Módulos y Paquetes
Introducción
Una de las ventajas de las funciones es cómo separan los bloques de código de su programa principal. Utilizando nombres descriptivos para las funciones, el programa principal será mucho más fácil de seguir.
Se puede ir un paso más allá almacenando las funciones en un archivo separado llamado módulo y luego importando ese módulo en el programa principal. Una declaración de importación le dice a Python que el código de un módulo esté disponible en el programa que se está ejecutando.
Almacenar funciones en un archivo separado permite ocultar los detalles de del código del programa y centrarse en la lógica de alto nivel. También permite reutilizar las funciones en muchos programas diferentes.
Cuando se almacenan funciones en archivos separados, se pueden compartir esos archivos con otros programadores sin tener que compartir todo el programa. Saber cómo importar funciones también permite utilizar bibliotecas de funciones que otros programadores han escrito.
Módulos
Así pues, un módulo es un archivo de Python que contiene variables, funciones y clases. Es una forma de ordenar y reutilizar código ya que todo el contenido de un módulo es accesible por los archivos que lo importen.
Para acceder a las funciones desde otro archivo Python se utiliza la palabra reservada import
:
También existe la posibilidad de importar únicamente objetos concretos de un módulo mediante la sintaxis from ... import
:
De esta forma no es necesario escribir el nombre del modulo antes de utilizar la función. De igual manera, se pueden importar varios objetos de un módulo separándolos por una coma:
Para importar todos los los objetos de un módulo basta con utilizar el asterisco:
Localización de los módulos
Al importar un módulo Python lo buscara en los siguientes directorios:
- En el directorio actual.
- En los directorios declarados en el
PYTHONPATH
(variable de entorno que contiene un listado de directorios) - En el directorio de instalación de Python por defecto (en UNIX normalmente '
/usr/local/lib/python
/')
Paquetes
Es posible agrupar los módulos que tienen relación en un mismo directorio. Estos directorios son conocidos en Python como paquetes y deben contener siempre un archivo llamado __init__.py
para que Python lo reconozca como un paquete.
A medida que desarrollamos una aplicación es habitual agrupar los archivos en directorios (paquetes) para tener el código organizado.
Para cargar un módulo ubicado en un paquete lo haremos de la siguiente forma:
o bien de la siguiente manera: También es posible importar elementos concretos de un módulo: