Algoritmos

Python incluye varios módulos para implementar algoritmos de forma elegante y concisa usando cualquier estilo que sea más apropiado para la tarea. Admite estilos puramente procesal, orientado a objetos y funcionales, y los tres estilos se mezclan con frecuencia en diferentes partes de el mismo programa.

functools incluye funciones para crear decoradores de funciones, permitiendo la programación orientada a aspectos y la reutilización de código, más allá del soporte tradicional de la programación orientada a objetos.

Proporciona un decorador de clases para implementar toda la rica interfaz de comparación usando un atajo y objetos partial para crear referencias a funciones con sus argumentos incluidos.

El módulo itertools incluye funciones para crear y trabajar con iteradores y generadores que se usan en programación funcional. El módulo operator elimina la necesidad de muchas funciones lambda triviales cuando se usa un estilo de programación funcional, proporcionando interfaces basadas en funciones para operacion incluidas como artitmética o búsqueda de elementos.

Y sin importar qué estilo se usa en un programa, contextlib hace la gestión de recursos más fácil, más confiable y más concisa. Combinando gestores de contexto y la sentencia with reduce el número de bloques try:finally y niveles de indentación necesarios, asegurando al mismo tiempo que los archivos, los sockets, las transacciones de la base de datos y otro recursos sean cerrado y liberados en el momento correcto.