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.