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.