Paquete Python
Paquete de Python
En este artículo, aprenderá a dividir su base de código en módulos limpios y eficientes utilizando paquetes de Python. Además, aprenderá a importar y utilizar paquetes propios o de terceros en un programa de Python.
Video:Paquetes de Python:organice su código
¿Qué son los paquetes?
Por lo general, no almacenamos todos nuestros archivos en nuestra computadora en la misma ubicación. Utilizamos una jerarquía de directorios bien organizada para facilitar el acceso.
Los archivos similares se guardan en el mismo directorio, por ejemplo, podemos guardar todas las canciones en la carpeta "música " directorio. Análogamente a esto, Python tiene paquetes para directorios y módulos para archivos.
A medida que nuestro programa de aplicación crece en tamaño con muchos módulos, colocamos módulos similares en un paquete y módulos diferentes en paquetes diferentes. Esto hace que un proyecto (programa) sea fácil de administrar y conceptualmente claro.
De manera similar, como un directorio puede contener subdirectorios y archivos, un paquete de Python puede tener subpaquetes y módulos.
Un directorio debe contener un archivo llamado __init__.py
para que Python lo considere como un paquete. Este archivo se puede dejar vacío, pero generalmente colocamos el código de inicialización de ese paquete en este archivo.
Aquí hay un ejemplo. Supongamos que estamos desarrollando un juego. Una posible organización de paquetes y módulos podría ser como se muestra en la siguiente figura.
Importar módulo desde un paquete
Podemos importar módulos desde paquetes usando el operador de punto (.).
Por ejemplo, si queremos importar el start
módulo en el ejemplo anterior, se puede hacer de la siguiente manera:
import Game.Level.start
Ahora, si este módulo contiene una función llamada select_difficulty()
, debemos usar el nombre completo para hacer referencia a él.
Game.Level.start.select_difficulty(2)
Si esta construcción parece larga, podemos importar el módulo sin el prefijo del paquete de la siguiente manera:
from Game.Level import start
Ahora podemos llamar a la función simplemente de la siguiente manera:
start.select_difficulty(2)
Otra forma de importar solo la función requerida (o clase o variable) desde un módulo dentro de un paquete sería la siguiente:
from Game.Level.start import select_difficulty
Ahora podemos llamar directamente a esta función.
select_difficulty(2)
Aunque es más fácil, no se recomienda este método. El uso del espacio de nombres completo evita confusiones y evita que dos mismos nombres de identificadores coincidan.
Al importar paquetes, Python busca en la lista de directorios definidos en sys.path
, similar a la ruta de búsqueda del módulo.
python