Diferencias Entre M贸dulos Y Paquetes En Python

Fecha de publicaci贸n: 28 Diciembre 2020
Tiempo de lectura: 2 min.
Premium: False
N煤mero de visitas: 175


Dos conceptos super fundamentales que debemos conocer, si queremos ser desarrolladores Python son:

  • Modulo
  • Paquete

En primera instancia podemos llegar a pensar que ambos son sin贸nimos, y hacen referencia a la misma cosas, sin embargo esto no es as铆. Veamos.

Comencemos con 驴Qu茅 es exactamente un m贸dulo? En t茅rminos simples, un m贸dulo no es m谩s que un archivo, con extensi贸n .py, que almacena c贸digo Python. Este archivo puede poser variables, constantes, condiciones, funciones, clases, m茅todos etc...

Aqu铆 un peque帽o ejemplo.

M贸dulo: user.py

class User():

    def __init___(self, username):
        self.username = username

    def say_hello(self):
        print('Hola mundo desde PyWombat!')

La idea principal de los m贸dulos es abstraer y agrupar el c贸digo fuente en un mismo archivo. Esto con la finalidad que f谩cilmente pueda ser reutilizado.

Por ejemplo, siguiendo el ejemplo anterior (con user.py) si en dado caso quisi茅ramos a帽adir una nueva entidad al proyecto, quiz谩s la clase Admin, que tenga relaci贸n con la clase User; una muy buena idea ser铆a crear un nuevo m贸dulo, e importar la clase que se necesita.

Ejemplo. admin.py

from .user import User

class Admin(User):

    def __init___(self, level):
        self.level = level

NOTA: Para importar elementos de un m贸dulo a otro, antepondremos el punto(.) al m贸dulo al momento de importarlo. from .user import User No ser谩 necesario indicar la extensi贸n del archivo.

Al nosotros separar las entidades en m贸dulos, no solo nuestro c贸digo ser谩 mucho m谩s f谩cil de comprender, si no ser谩 mucho m谩s f谩cil de mantener.

Los m贸dulos no solo se limitan en almacenar clase, no, nada de ello. Tambi茅n podemos crear m贸dulos exclusivos de funciones, decoradores, constantes, variables etc...

Con esto en mente, quiz谩s te estes pregunta, ok, ya comprendo que son los m贸dulos, pero 驴Qu茅 son los paquetes? La respuesta tambi茅n es sencilla. Un paquete no es m谩s que un folder/carpeta donde se almacena m贸dulos. As铆 de sencillo.

La igual que los m贸dulos, los paquete tiene la finalidad de agrupar c贸digo. C贸digo un poco menos abstracto que un m贸dulo, pero c贸digo que tenga relaci贸n entre s铆.

Para que una folder/carpeta pueda considerarse un paquete debe cumplir con los siguiente requerimientos.

  • Almacenar por lo menos un archivo .py
  • Poseer el archivo init.py

Con nuestro dos m贸dulos anteriores, f谩cilmente podemos crear nuestro paquete entities (O el nombre que t煤 desees). Este paquete pudiera almacenar todas las entidades del proyecto. En este caso, nuestros m贸dulos user.py y admin.py

Para hacer uso de elementos de un paquete haremos uso del import sobre el paquete.

Ejemplo: main.py

from entities.user import User
from entities.admin import Admin

Esto funciona, sin embargo el import no se ve para nada bien. Para mejorar esto, haremos uso del archivo init.py. Mediante este archivo seremos capaces de definir, exactamente qu茅 elementos queremos puedan ser importados.

Ejemplo: init.py

from  .admin import Admin

Con este cambio, ya podremos importar del paquete unicamente la clase Admin.

Ejemplo: main.py

from entities import Admin

Otro ejemplo claro sobre los paquetes, son las apps de Django. Estos paquetes almacenan m贸dulos con relaci贸n entre s铆. Modelos, vistas, urls, pruebas unitarias etc... C贸digo que se complementa con ellos mismos.



Conclusi贸n

Listo, ahora ya conocemos la diferencia ente m贸dulo y paquete en Python. Recuerda, un m贸dulo no es m谩s que un archivo .py que almacena c贸digo Python, por otro lado un paquete es un folder/careta que almacena m贸dulos.

M谩s Tips y Ejercicios 馃悕

Adquiere una subscripci贸n PyWombat por tan solo $3 USD. al mes.

Conoce los beneficios de ser usuario premium:
Niveles desbloqueados: Ten accesos a todos los niveles de ejercicios. 馃敁
Nuevo l铆mite: Incrementa tu l铆mite de ejercicios por semana. 馃殌
Contenido 煤nico: Recibe semanalmente recursos exclusivos de Python (Videos, Art铆culos y Capitulos del libro PyWombat, comienza como desarrollador Python. 馃悕

Comentarios

Para poder conocer tu opini贸n es necesario ser un usuario autenticado. Login