Bienvenid@s, hoy veremos una de las partes esenciales de la programación en Python. Los módulos son fundamentales para crear aplicaciones organizadas correctamente, un lenguaje de programación debe contener las herramientas necesarias para la multitud de problemas que nos podemos encontrar a la hora de programar, los módulos proporcionan esas herramientas, a demás de proporcionarlas, permiten que la aplicación se distribuya de un modo estructural correcto, es decir, de una forma modular, imaginen tener que escribir toda una aplicación en un sólo script, se convertiría en algo emborronoso y nada aconsejable, los módulos nos permiten también eso, tener una organización estructurada de la aplicación.
Los módulos deben ir organizados en carpetas o paquetes según lo queramos llamar, un módulo lleva la extensión .py y contiene en su interior una serie de elementos en concreto: clases, funciones, variables que se encargan de realizar determinadas tareas, por ejemplo, un paquete de módulos puede estar destinado a proporcionar herramientas para realizar operaciones matemáticas, otro paquete de módulos, para proporcionar herramientas para el envío de emails, otro paquete para conectar a bases de datos, etc...
Python ya proporciona una serie de módulos nativos, también podemos incluir módulos de terceros, los módulos son importados a través de la palabra import, por ejemplo, el módulo sys es un módulo propio de Python y ya vimos un pequeño ejemplo con él, cuando vimos como pasar argumentos en la línea de comandos ...
import sys script = sys.argv[0] print(script) #retorna el script .py ejecutandose actualmente
Los módulos son llamados a través de su namespace, es decir, importamos el módulo a través del nombre dado al script python.
Supongamos que queremos crear un módulo que contenga una serie de elementos que nos permitan realizar operaciones matemáticas. Lo primero que haremos es crear la carpeta donde alojaremos el módulo, a esta carpeta la podemos llamar "modulos", en el interior de esta carpeta tendremos que crear un archivo con el siguiente nombre: __init__.py en este script no es necesario incluir nada, este script indica a Python de que en esta carpeta se encuentra módulos.
A continuación, crearemos en el interior de la carpeta "modulos" un módulo al cual llamaremos matematicas.py y le agregaremos el siguiente código con una serie de funciones para sumar, restar, multiplicar y dividir ...
def sumar(*arg): sumar = arg[0] for val in arg[1:]: sumar += val return sumar def restar(*arg): restar = arg[0] for val in arg[1:]: restar -= val return restar def multiplicar(*arg): multiplicar = arg[0] for val in arg[1:]: multiplicar *= val return multiplicar def dividir(n1, n2): return n1 / n2
Ok, ahora en la raiz de la carpeta donde tenemos alojados nuestros scripts python, crearemos un script python para importar este módulo matematicas y poder realizar operaciones con las funciones proporcionadas por el mismo, a este script lo podemos llamar, "importar-modulos.py", ...
#ejemplo 1 accediendo a traves del namespace del modulo #incluimos el nombre de la carpeta y el nombre del modulo import modulos.matematicas #observa como accedemos a la funcion sumar print(modulos.matematicas.sumar(10, 10, 10)) #regresa 30
También podemos acceder podemos incluir un alias al namespace, ahora en lugar de acceder a los elementos a través del namespace lo haremos a través del alias asignado ...
#ejemplo 2 agregando un alias al namespace del modulo import modulos.matematicas as m #ahora accedemos a traves del alias m print(m.restar(10, 3, 2)) #regresa 5
También podemos acceder a todos los elementos sin tener que porque utilizar el namespace ...
#ejemplo 3 acceder a todos los elementos sin incluir el namespace, el asterico significa que podemos acceder #a todos los elementos del modulo from modulos.matematicas import * print(multiplicar(2, 2, 2, 2)) #regresa 16
Seleccionar sólo determinados elementos del módulo sin utilizar el namespace, en este caso sólo importaremos la función sumar, si queréis agregar más elementos separen estos por comas, ejemplo: sumar, restar, dividir ...
#ejemplo 4 acceder a un determinado elemento del modulo sin utilizar el namespace from modulos.matematicas import sumar print(dividir(10, 2)) #regresa 5.0
Asignar alias a los elementos seleccionados del módulo, en este caso accederemos al elementos a través del alias asignado ...
#ejemplo 5 agregando un alias a los elementos para evitar duplicidades from modulos.matematicas import sumar as s, restar as r print(s(1, 1, 1, 1, 1)) #regresa 5 print(r(20, 10, 5)) #regresa 5
No hay comentarios:
Publicar un comentario