Herramientas de lenguaje

Además de las herramientas de desarrollador cubiertas en un capítulo anterior, Python también incluye módulos que proporcionan acceso a sus caracteristicas internas. Este capítulo cubre algunas de las herramientas para trabajar en Python, independientemente del área de aplicación.

El módulo :mod`warnings` se usa para reportar condiciones no fatales o errores recuperables. Un ejemplo común de advertencia es el DeprecationWarning generado cuando una característica de la biblioteca estándar ha sido reemplazada por una nueva clase, interfaz o módulo. Usa warnings para reportar condiciones que pueden necesitar la atención del usuario, pero no son fatales

Definir de un conjunto de clases que se ajustan a una interfaz común puede ser un desafio cuando la interfaz es definida por otra persona o utiliza una gran cantidad de métodos. Una forma común de evitar este problema es derivar todas las clases nuevas de una clase base común, pero no siempre es obvio qué métodos deben ser anulados y cuáles pueden recurrir al comportamiento por defecto. Clases base abstractas del módulo abc formalizan una interfaz marcando explícitamente los métodos que una clase debe proporcionar de una manera que evita que la clase sea instanciada sino está completamente implementada. Por ejemplo, muchos de los tipos de contenedor de Python tienen clases base abstractas definidas en abc o collections.

El módulo dis se puede usar para desensamblar la versión de código de bytes de un programa para comprender los pasos que el intérprete lleva a cabo para ejecutarlo. Ver el código desensamblado puede ser útil cuando se depura el rendimiento o problemas de concurrencia, ya que expone las operaciones atómicas ejecutadas por el intérprete para cada declaración en un programa.

El módulo inspect proporciona soporte de introspección para todos los objetos en el proceso actual. Eso incluye módulos importados, definiciones de clases y funciones, y los objetos creados a partir de ellas. La introspección se puede usar para generar documentación para el código fuente, adaptar el comportamiento dinámicamente en el tiempo de ejecución o examinar el entorno de ejecución para un programa.