Quais são algumas boas técnicas de depuração em Python?
Depurar é uma habilidade essencial para qualquer desenvolvedor Python. Compreender técnicas fundamentais pode ajudar você a identificar e corrigir problemas de forma eficiente.
Depuração é o processo de identificar e resolver erros ou bugs no seu código. Envolve examinar o código, entender o fluxo e usar ferramentas para identificar a origem dos problemas.
Nesta lição, vamos revisar técnicas comuns de depuração que você pode usar no seu próximo projeto Python.
Usando a função
Primeiro, usar a função Depuração interativa com o módulo
Em seguida, você pode utilizar o módulo embutido
Usando a função print() e f-strings
Primeiro, usar a função print() e f-strings em vários pontos do seu código pode ajudar você a entender o fluxo e o estado das variáveis. Por exemplo:
def add(a, b):
result = a + b
print(f'Adding {a} and {b} gives {result}')
return result
Ao imprimir os valores de a, b e result, você pode verificar que a função se comporta conforme o esperado.
Depuração interativa com o módulo pdb
Em seguida, você pode utilizar o módulo embutido pdb do Python para depuração interativa:
import pdb
def divide(a, b):
pdb.set_trace()
return a / b
print(divide(10, 2))
Ao definir um trace com a função set_trace(), você pode avançar passo a passo pelo código, inspecionar variáveis e entender o comportamento do programa.
Se você executar o código acima, verá uma saída mostrando a localização do arquivo que você está executando, a linha onde chamou a função set_trace() e o código imediatamente após ela, e um prompt interativo pdb:
> /Users/fcc/Desktop/debugging.py(5)divide()
-> return a / b
(Pdb)
Se você digitar help no prompt, verá uma lista de comandos que pode usar:
(Pdb) help
Documented commands (type help <topic>):
========================================
EOF c d h list q rv undisplay
a cl debug help ll quit s unt
alias clear disable ignore longlist r source until
args commands display interact n restart step up
b condition down j next return tbreak w
break cont enable jump p retval u whatis
bt continue exit l pp run unalias where
Miscellaneous help topics:
==========================
exec pdb
Então você pode usar os comandos para depurar seu código.
Por exemplo, se você quiser verificar o tipo dos elementos ao longo do seu código naquele momento, você pode usar o comando whatis:
(Pdb) whatis a
<class 'int'>
(Pdb) whatis divide
Function divide
Como você pode ver, no momento em que você executa .set_trace(), o tipo do parâmetro a é um inteiro e divide é uma função.
Então, para continuar a execução do seu código, você pode usar o comando continue ou um dos seus aliases, cont ou c:
(Pdb) continue
5.0
Ferramentas de depuração do IDE
Muitos Ambientes de Desenvolvimento Integrados (IDEs) oferecem ferramentas avançadas de depuração, como pontos de interrupção, execução passo a passo e inspeção de variáveis.Usando o depurador do VS Code
Se você usar o VS Code, pode definir pontos de interrupção no seu código e executar o debugger para pausar a execução nesses pontos. Aqui está como depurar a mesma funçãodivide:
Passo 1: Configure seu código
Crie um arquivo chamado main.py com o seguinte conteúdo:
def divide(a, b):
result = a / b
return result
print(divide(10, 2))
print(divide(15, 3))
Passo 2: Defina um ponto de interrupção
1. Clique na margem (margem esquerda) ao lado da linha 2 (result = a / b) para definir um ponto de interrupção
2. Um ponto vermelho aparecerá, indicando que o ponto de interrupção está definido
Passo 3: Comece a depuração
1. Pressione F5 ou vá em Executar > Iniciar Depuração
2. Selecione "Python File" quando solicitado
3. O depurador irá pausar a execução no seu ponto de interrupção
Passo 4: Inspecione as variáveis
- Passe o mouse sobre as variáveis para ver seus valores atuais
- Use o painel Variáveis à esquerda para ver todas as variáveis locais
- Use o Debug Console na parte inferior para avaliar expressões
- Continue (F5): Retomar a execução até o próximo ponto de interrupção
- Step Over (F10): Execute a linha atual e avance para a próxima
- Step Into (F11): Entrar em chamadas de função
- Step Out (Shift+F11): Saia da função atual
print(), o módulo pdb e ferramentas de IDE - você pode identificar e resolver problemas no seu código Python de forma eficaz. Cada técnica tem seu lugar: declarações print() para verificações rápidas, pdb para exploração interativa e depuradores de IDE para inspeção visual.Este módulo não possui perguntas. Marque como concluído.