Introducción
Los módulos de Python son una forma conveniente de encapsular y organizar código reutilizable. Si se encuentra copiando y pegando el mismo código en varios scripts o proyectos, es una buena indicación de que debería considerar la posibilidad de crear un módulo personalizado. En este artículo, lo guiaremos a través del proceso de creación y uso de su propio módulo Python personalizado.
Comprender los conceptos básicos
Un módulo en Python es simplemente un archivo que contiene definiciones y declaraciones de Python. El nombre del archivo es el nombre del módulo seguido de la extensión .py. Por ejemplo, un módulo llamado mymodule se guardaría como mymodule.py.
Crea el formulario
Para nuestro ejemplo, digamos que tiene algunas funciones matemáticas que desea reutilizar en proyectos. De modo que puede escribirlos en un solo archivo y luego reutilizarlos como módulo en otros scripts de Python.
Por ejemplo, he creado el script de Python mymath.py a continuación que incluye funciones de suma, resta, multiplicación y división.
# mymath.py
def add(x, y):
return x + y
def subtract(x, y):
return x - y
def multiply(x, y):
return x * y
def divide(x, y):
if y == 0:
return "Undefined (division by zero)"
return x /y
Aquí hemos creado un módulo mymath.py simple con cuatro funciones aritméticas básicas.
Usa el formulario
Ahora veamos cómo podemos usar este módulo personalizado en otro script de Python. Aquí podemos usar la declaración de importación con el nombre del archivo de secuencia de comandos del módulo Python sin extensión. Vea el ejemplo a continuación:
# main.py
# Importing our custom module
import mymath
# Using functions from our module
print(mymath.add(5, 3))
print(mymath.subtract(5, 3))
print(mymath.multiply(5, 3))
print(mymath.divide(5, 3))
Nota: asegúrese de que main.py y mymath.py estén en el mismo directorio, o que mymath.py esté en un directorio que esté en sys.path de Python.
Usando la declaración de...importación
En algunos casos, es posible que necesite utilizar algunas funciones únicamente del módulo. Entonces, en lugar de importar el módulo completo, también puedes importar funciones específicas:
from mymath import add, subtract
print(add(5, 3))
print(subtract(5, 3))
Usando __nombre__
En módulos más grandes, es posible que desees probar tu código. El atributo __name__ le permite controlar si el módulo se ejecuta directamente o se importa en otro lugar:
# mymath.py
def add(x, y):
#... (same as above)
#... other functions...
if __name__ == "__main__":
print("Running tests for mymath module")
assert add(2, 3) == 5
#... more tests...
Organizar múltiples módulos con paquetes.
Si tiene varios módulos relacionados, puede organizarlos en un solo paquete. Un paquete es simplemente una forma de recopilar módulos relacionados dentro de una única jerarquía de directorios.
Por ejemplo, para crear un paquete llamado mipaquete:
Cree un directorio llamado mipaquete.
mkdir mypackage
Agregue un archivo vacío llamado __init__.py al directorio (esto hace que Python trate el directorio como un paquete o subpaquete).
touch./mypackage/__init__.py
Coloque los archivos del módulo relacionados en el directorio mypackage.
Luego, puede importar módulos de este paquete usando:
from mypackage import mymath
Implementar el formulario
Si cree que su módulo podría beneficiar a la comunidad Python en general, considere distribuirlo a través del Índice de paquetes de Python (PyPI). Primero, lo empaquetará usando herramientas de configuración y luego podrá distribuirlo con cordel.
Conclusión
Crear y utilizar módulos Python personalizados es una habilidad esencial, especialmente cuando sus proyectos se vuelven cada vez más complejos. Los módulos ayudan a descomponer sistemas complejos, promover la reutilización de código y mantener una base de código más limpia. A medida que continúa su viaje con Python, piense en los módulos como su kit de herramientas confiable, siempre listo para ayudarlo a crear grandes cosas.