WindowsMacSoftwareConfiguraciónSeguridadAndroidProductividadLinuxRendimientoApple Todo

Cómo depurar código Python con PDB

Editado 2 Hace unas semanas por ExtremeHow Equipo Editorial

PythonDepuraciónPDBSolución de problemasLínea de comandosWindowsMacLinuxProgramaciónDesarrollo

Cómo depurar código Python con PDB

Traducción actualizada 2 Hace unas semanas

Python es un lenguaje de programación versátil y ampliamente usado, elogiado por su legibilidad y simplicidad. Sin embargo, como cualquier otro lenguaje de programación, el código Python puede contener errores. La depuración es una habilidad esencial para cualquier desarrollador, ya que les permite identificar y solucionar problemas en su código. En Python, una de las herramientas más populares para depurar es PDB, el Depurador de Python. Este artículo explicará en detalle cómo depurar código Python usando PDB.

Entendiendo PDB (Depurador de Python)

PDB significa Depurador de Python, es una herramienta de depuración integrada que viene con Python. Permite a los desarrolladores examinar su código, inspeccionar variables e identificar dónde están ocurriendo los errores. PDB es una herramienta de línea de comandos que puede parecer intimidante al principio, pero una vez que te acostumbras, se vuelve increíblemente poderosa y útil.

Comandos básicos en PDB

Antes de adentrarse en la depuración, es importante entender algunos comandos básicos en PDB. Aquí están algunos comandos importantes que usarás:

Iniciando PDB

Para comenzar a usar PDB, puedes invocarlo desde la línea de comandos mientras ejecutas tu script Python. Supongamos que tienes un script llamado example.py. Puedes iniciar el depurador así:

python -m pdb example.py

Este comando ejecuta tu script bajo PDB, y podrás comenzar a depurar desde la primera línea de tu script.

Estableciendo un punto de interrupción

Los puntos de interrupción son muy importantes al depurar con PDB. Te permiten detener la ejecución de tu código en un punto específico. Una vez que el programa se detiene, puedes inspeccionar el entorno, las variables y el flujo de ejecución.

Puedes establecer un punto de interrupción en un número de línea específico de la siguiente manera:

b 10

Aquí, el depurador detendrá la ejecución en la línea 10 de tu script. También puedes establecer un punto de interrupción en la función:

b my_function

Este comando detendrá la ejecución cada vez que se llame a my_function.

Avanzando paso a paso por el código

Avanzar por el código es una tarea común en la depuración. Te permite ejecutar el programa línea por línea y observar el flujo de ejecución. Puedes usar el comando 'n' para moverte a la siguiente línea en tu código:

n

Si estás interesado en entrar en la llamada a la función, usa el comando 's':

s

La diferencia entre 'n' y 's' es importante: mientras que 'n' se mueve a la siguiente línea en el ámbito actual, 's' se mueve a cualquier función llamada en la posición actual.

Inspeccionando variables

Inspeccionar variables es otra parte importante de la depuración. Puedes verificar el valor de las variables con el comando 'p':

p variable_name

Para expresiones más complejas, simplemente escribe esta expresión:

p my_variable + 10

Esto evaluará my_variable + 10 e imprimirá el resultado.

Ejecución continua

Una vez que hayas terminado de inspeccionar o avanzar paso a paso por tu código, puedes querer continuar con la ejecución normal. Para hacer esto, usa el comando 'c':

c

Continuará la ejecución hasta que se alcance otro punto de interrupción o el programa termine.

Ejemplo de uso de PDB

Consideremos un ejemplo simple de cómo se puede usar PDB. Supongamos que tenemos el siguiente script, que tiene un error:

def add_numbers(a, b): return a + b def main(): result = add_numbers(3, "4") print("The result is:", result) if __name__ == "__main__": main()

En este script, hay un error en la función main. La función add_numbers se llama con una cadena en lugar de un entero, lo que generará un TypeError.

Para depurar esto, ejecutemos el script con PDB:

python -m pdb script_name.py

El depurador comienza, y puedes establecer un punto de interrupción en el punto de interés, quizás donde se llama a la función add_numbers:

b main c

El programa se ejecuta hasta que llega a un punto de interrupción en la función main. Desde aquí, puedes continuar e inspeccionar la línea problemática:

ss pa pb

Estos comandos te ayudarán a identificar que las entradas para la función add_numbers son del tipo incorrecto. Verás que b es en realidad una cadena, lo que lleva a un TypeError.

Saliendo de PDB

Una vez que hayas terminado de depurar, puedes salir de PDB usando el comando 'q':

q

Esto saldrá del depurador y finalizará el programa.

Características avanzadas

Además de los comandos básicos, PDB proporciona características avanzadas que pueden mejorar tu experiencia de depuración:

Conclusión

Aprender a usar PDB puede mejorar en gran medida tu habilidad para depurar y comprender programas en Python. Aunque puede llevar algún tiempo familiarizarse con todos los comandos, la recompensa es una visión más profunda y completa de tu base de código. Recuerda que la depuración no se trata solo de encontrar y corregir errores, sino de una oportunidad para mejorar tu comprensión de la lógica y el flujo de tu aplicación. Con PDB, tienes una herramienta poderosa para inspeccionar, evaluar y mejorar de manera eficiente tu código Python.

La depuración es una parte vital del desarrollo de software, y dominar herramientas como PDB puede aumentar significativamente tu productividad y la calidad del código. A través de la práctica y la experiencia, te encontrarás depurando más rápido y de manera más efectiva.

Si encuentras algo incorrecto en el contenido del artículo, puedes


Comentarios