English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
En este artículo, aprenderá a dividir la biblioteca de código en módulos limpios y eficientes utilizando paquetes de Python. Además, también aprenderá a importar y usar paquetes propios o de terceros en programas de Python.
Generalmente no almacenamos todos los archivos en el mismo lugar. Usamos una jerarquía de directorios bien organizada para facilitar el acceso.
Los archivos similares se almacenan en el mismo directorio, por ejemplo, podemos mantener todas las canciones en el directorio "music". De manera similar, Python tiene paquetes para directorios y para archivosMódulo.
A medida que nuestra aplicación se hace cada vez más grande y tiene muchos módulos, ponemos módulos similares en un paquete y módulos diferentes en paquetes diferentes. Esto hace que el proyecto (programa) sea más fácil de gestionar y conceptualmente claro.
Del mismo modo, ya que los directorios pueden contener subdirectorios y archivos, los paquetes de Python pueden tener subpaquetes y módulos.
El directorio debe contener un archivo __init__.py para que Python lo considere como un paquete. Este archivo puede mantenerse vacío, pero generalmente colocamos el código de inicialización del paquete en este archivo.
Este es un ejemplo. Supongamos que estamos desarrollando un juego, la organización posible de paquetes y módulos podría ser como se muestra en la siguiente imagen.
Podemos usar el operador de punto (.) para importar módulos desde el paquete.
Por ejemplo, si queremos importar el módulo start en el ejemplo anterior, complete los siguientes pasos.
import Game.Level.start
Ahora, si el módulo contiene una función llamada select_difficulty()Funcióndebemos usar el nombre completo para referirnos a él.
Game.Level.start.select_difficulty(2)
Si esta estructura parece muy larga, podemos importar el módulo sin prefijo de paquete de la siguiente manera.
from Game.Level import start
Ahora, podemos llamar a la función de la siguiente manera.
start.select_difficulty(2)
Otra forma de importar solo las funciones (o clases o variables) de los módulos del paquete es la siguiente.
from Game.Level.start import select_difficulty
Ahora podemos llamar directamente a esta función.
select_difficulty(2)
A pesar de ser bastante simple, no se recomienda usar este método. Utilice el completoEspacio de nombresevitando la confusión y prevenir conflictos de nombres de identificador idéntico.
Al importar paquetes, Python verifica la lista de directorios definida en sys.path, similar aRuta de búsqueda de módulos.