I am Charmie

メモとログ

IceCream for Python

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