Módulos y paquetes - Universidad de Costa Rica

advertisement
Universidad de Costa Rica | Escuela de Ingeniería Eléctrica
IE-0117 Programación Bajo Plataformas Abiertas
Módulos y paquetes
1.
Los módulos de Python
En Python, las bibliotecas externas se organizan en módulos. Un módulo es un archivo que contiene las definiciones de
funciones, clases, constantes y demás herramientas que estarán disponibles para el programador. Estos archivos pueden
escribirse en Python o bien en otro lenguaje como C o C++ y luego compilarse para generar un objeto binario.
1.1. Espacios de nombres
Cada módulo define un espacio de nombres (namespace) independiente. De esta forma, pueden crearse funciones o
clases con cualquier nombre, sin temor a que entren en conflicto con las definiciones de otros módulos.
Para acceder al espacio de nombres definido en un módulo y poder utilizar sus funciones, clases y demás definiciones,
se utiliza la palabra clave import:
import sys
if len(sys.argv) != 3:
print >>sys.stderr, "¡Error! ¡Error!"
sys.exit(1)
También pueden importarse funciones o clases independientes al espacio de nombres actual usando el enunciado
from módulo import nombre...
from sys import argv, stderr, exit
if len(argv) != 3:
print >>stderr, "¡Error! ¡Error!"
exit(1)
1.2. Ubicación de los módulos
Para que un módulo pueda ser importado por Python, debe estar ubicado en alguna ubicación reconocida por el
intérprete. La lista de estas ubicaciones puede accederse usando la variable sys.path:
>>> import sys
>>> print sys.path
['', '/usr/lib/python2.6', '/usr/lib/python2.6/plat-linux2', ... ]
Pueden agregarse directorios a esta lista en tiempo de ejecución usando el método append():
import sys
sys.path.append('/tmp')
1
IE-0117 Programación Bajo Plataformas Abiertas
Módulos y paquetes
También es posible indicar nuevas rutas para los módulos usando la variable de entorno $PYTHONPATH, antes de
ejecutar el programa:
$ export PYTHONPATH=/tmp
$ ./programa_python.py
1.3. La función dir()
Es posible usar la función dir() para obtener una lista de todos los nombres definidos dentro de un espacio de
nombres. Esto no aplica sólamente a los módulos, sino también a objetos y clases:
>>> import sys
>>> print dir(sys)
[...]
>>> a = "Hola mundo!"
>>> print dir(a)
[...]
>>> print dir(list)
[...]
1.4. Definición de nuevos módulos
Para escribir un módulo usando el lenguaje Python, sólo es necesario crear un archivo con la extensión py en el
mismo directorio donde se encuentra el programa, o bien, en alguno de los directorios listados en sys.path. Cuando
se importe el módulo, todo el contenido del archivo será ejecutado, haciendo que todas las funciones, clases y demás
elementos definidos queden disponibles para su uso en el programa principal.
2.
Paquetes
Los módulos pueden organizarse de forma jerárquica, agrupándolos dentro de paquetes. Para crear un paquete lo
único que debe hacerse es un directorio y colocar dentro de él los módulos que se desee agrupar. Junto con los módulos
debe crearse un archivo llamado __init__.py. Este archivo le indica al sistema que el directorio es un paquete que
contiene módulos dentro. El archivo __init__.py puede contener código de inicialización que se ejecutará cuando se
importa el paquete, sin embargo esto no es necesario, con un archivo vacío es suficiente.
2
Descargar