IceCreamはprint(), log()を使ったデバッグの賢い代替機能を提供するPythonパッケージ
基本的な動作はprint()と同じだけど,以下のような要素を持つ
- 式・変数名とその値の両方を表示
- タイピングするのが40%早くなる
- データ構造もpretty printされる
- 出力はシンタックスハイライトされる
- オプション的にプログラム内の要素を含む (ファイル名,行番号,呼び出し元関数)
実際に使ってみると以下のような感じ
関数の出力
from icecream import ic x = 11 print(f'foo({x}) = {foo(x)}') ic(foo(x))
foo(11) = 22 ic| foo(x): 22
dictの出力
from icecream import ic my_dict = {'foo': 'test(foo)', 'bar': 'test(bar)'} print(my_dict) ic(my_dict)
{'foo': 'test(foo)', 'bar': 'test(bar)'} ic| my_dict: {'bar': 'test(bar)', 'foo': 'test(foo)'}
pandas.DataFrameの出力
import pandas as pd from icecream import ic dataframe = pd.DataFrame({'num_legs': [2, 4, 8, 0], 'num_wings': [2, 0, 0, 0], 'num_specimen_seen': [10, 2, 1, 8]}, index=['falcon', 'dog', 'spider', 'fish']) print(dataframe) ic(dataframe)
num_legs num_wings num_specimen_seen falcon 2 2 10 dog 4 0 2 spider 8 0 1 fish 0 0 8 ic| dataframe: num_legs num_wings num_specimen_seen falcon 2 2 10 dog 4 0 2 spider 8 0 1 fish 0 0 8