Introdução ao IceCream
A biblioteca IceCream fornece a função ic() que é uma alternativa de print() e log() para depuração de código.
As principais vantagens da função ic() são:
- Exibe a expressão/nome de variáveis e também o seu respectivo valor;
- É mais conciso;
- Pretty print em estruturas de dados complexas;
- Syntax highlighting da saída;
- É possível incluir contexto de programa como por exemplo: nome de aquivo, número da linha, funções pai.
Inspecionar variáveis
Caso você já imprimiu variáveis ou expressões para depurar da seguinte forma
print(foo('123'))ou de forma mais detalhada
print("foo('123')", foo('123'))Então o ic() vai ser extremamente útil para facilitar esse processo. Com argumentos, o ic() se inspeciona e imprime tanto seus próprios argumentos quanto os valores desses argumentos.
from icecream import ic
def foo(i):
return i + 333
ic(foo(123))Imprime:
ic| foo(123): 456
Da mesma forma,
d = {'key': {1: 'one'}}
ic(d['key'][1])
class klass():
attr = 'sim'
ic(klass.attr)Imprime
ic| d['key'][1]: 'one'
ic| klass.attr: 'sim'Basta fornecer ao ic() uma variável ou expressão e todo o trabalho de depuração é feito de forma fácil e rápido.