Que son los paquetes en Python y como funcionan

Paquetes
Los paquetes son una forma de dar estructura a la tabla de nombres en Python usando un punto (.) para delimitar los módulos. Por ejemplo el nombre A.B supone que el submódulo B está dentro del modulo A.

Así como el uso de módulos evita el conflicto por variables del mismo nombre el uso de paquetes impide el conflicto por módulos del mismo nombre. En sí los paquetes son una colección de módulos, relacionados de alguna manera y acomodados en directorios.

El nombre del paquete dependerá del nombre del directorio en el que se encuentren los módulos, es decir, si el nombre del directorio es sound el paquete se llamará sound. Para poder inicializar un paquete es necesario que en el directorio se encuentre el archivo __init__.py y este a su vez debe contener el texto Python en si.

Supondremos que usted desea crear una coleccion de módulos (un paquete) para el manejo de archivos de sonido. El arbol para su paquete se podría ver así:

sound/

__init__.py

formats/

__init__.py
ogg.py
mp3.py
avi.py

filters/
__init__.py
equalizer.py
karaoke.py

effects/
__init__.py
echo.py
reverse.py
surround.py
Los usuarios de este paquete pueden ahora importarlo usando:

>>> import sound
o importar solo alguno de sus modulos:

>>> import sound.formats.ogg

Una forma alterna de importar este modulos sería:

>>> from sounds.formats import ogg

Y aun asi es posible importar solo una parte del módulo en específico

>>> from sounds.formats.ogg import decoder

Note que usando el método from package import item, el item puede ser un modulo o
una parte de algún módulo como una clase, metodo o variable. Tambien se puede usar el
operador * para importar todo el contenido del ultimo item, utilizando la sintaxis:

>>> from package import *

Por el contrario usando el método import item.subitem.subsubitem cada uno de los
items excepto el último debe ser un paquete.

El ultimo item puede ser un modulo o un paquete
pero no puede ser una clase o variable.

Deja un comentario