Como usar o módulo inspect em Python para rastrear a linha de execução
Em projetos grandes, como scripts Python com centenas ou milhares de linhas, pode ser útil identificar em qual linha determinada execução está ocorrendo — especialmente durante depuração e testes. O módulo inspect
do Python oferece ferramentas poderosas para isso.
Exibindo a linha atual de execução
Com o inspect
, é possível identificar e imprimir o número da linha sendo executada. Veja o exemplo abaixo:
import inspect
def mostrar_linha_atual():
frame = inspect.currentframe()
lineno = frame.f_lineno
print("Executando a linha {}".format(lineno))
mostrar_linha_atual()
# Código adicional aqui
mostrar_linha_atual()
Esse código imprime no console a linha que está sendo executada. Isso pode ajudar a entender o fluxo do programa e encontrar gargalos ou falhas de execução.
Capturando a linha do erro com try/except
Se você quer rastrear o local exato onde ocorreu um erro, combinando inspect
com o módulo sys
, é possível identificar o número da linha que gerou a exceção. Veja como:
import inspect
import sys
def minha_funcao():
# Linha com erro
print(variavel_inexistente)
try:
minha_funcao()
except Exception as e:
_, _, tb = sys.exc_info()
linha = tb.tb_lineno
print(f"Ocorreu um erro na linha {linha}: {e}")
Neste exemplo, a função minha_funcao()
contém uma variável indefinida, o que causa um erro do tipo NameError
. O bloco try/except
captura a exceção e usa sys.exc_info()
para acessar o traceback, que fornece o número exato da linha com problema.
Como funciona o traceback e por que é útil
O objeto traceback
(tb
) contém informações sobre a pilha de chamadas no momento em que a exceção ocorreu. O atributo tb_lineno
fornece o número exato da linha de código que disparou a exceção, o que facilita muito a correção de erros.
Esse tipo de depuração é extremamente útil, principalmente em ambientes de desenvolvimento e testes, onde você precisa identificar rapidamente pontos de falha.
Considerações finais sobre uso do inspect
- Use
inspect.currentframe()
apenas em contextos de depuração. - Evite exibir informações técnicas ao usuário final em aplicações reais (produção).
- Trate exceções de maneira segura e clara, registrando logs se necessário.
Essas práticas ajudam a tornar seus scripts mais profissionais e fáceis de manter. O módulo inspect
pode ser combinado com outros recursos do Python para construir ferramentas internas de diagnóstico e análise em projetos maiores.
Referência oficial
Para mais informações, acesse a documentação oficial do módulo inspect no Python.
Dominar essas técnicas permite criar programas mais robustos e fáceis de depurar, reduzindo o tempo gasto com correção de erros em ambientes de desenvolvimento.