Python debugを楽にするicecreamって知ってますか?

Python
この記事は約4分で読めます。

さて、今回はpython関係の記事です。

みなさん、debugってされますよね?毎回対象が何かって書くのめんどくさくないですか?

動作確認したいだけなのに、明示するために書かなきゃいけないコードが増えるっていけてないですよね?めんどくさがりの私にとっては非常にいけてないと思う部分なんです。せめてtest codeでならまだ頑張れるんですけど。。

今回はそんなめんどくささを軽減してくれるicecreamというライブラリの紹介です。個人的には結構お世話になっています。

スポンサーリンク
もしも_楽天

icecreamって美味しいですか?

個人的にはdebugを楽にしてくれるので、結構美味しいライブラリだと思ってます。使い方もシンプルでとっつきにくさもないです。

icecreamを使わないdebugの場合

普通に簡単なデバッグを実施しようとした場合以下のようになりますよね。

値の確認をする場合

num = 1
name = "aaa"

def debug(num, name):
    print("num", num)
    print("name", name)

if __name__ == '__main__':
    debug(num, name)

そうなんですよ、変数が何かを明記する必要がありますよね。ちょっとめんどくさい。。

関数の実行行数の場合

関数の実行行数(何が呼び出されたのか確認する場合)を知りたい場合は、それこそコードを書かなきゃできませんでした。。

import inspect

def location(depth=0):
    frame = inspect.currentframe().f_back
    return (frame.f_code.co_filename, frame.f_lineno)

def debug_functions(boolian:bool):
    if boolian:
        print(location())
    else:
        print(location())

if __name__ == '__main__':
    debug_functions(boolian=False)

変数の確認以上にこっちはめんどくさいですよね。。わざわざやりたくないわってなります。

同じ気持ちになった方は是非icecreamの購入をお勧めしますw

icecreamってどこで買えますか?(インストール方法)

モジュールのインストだけなので、pipコマンドとimportできれば誰でも利用できます。もちろん無料ですw

pip install icecream

インポートの宣言はこちら。

from icecream import ic

これだけでdebugが楽になります。

icecreamの食べ方(モジュールの使い方)

非常にシンプルです。値の確認の場合及び実行行数の確認の双方で見ていきましょう。

icecreamで値の確認をする場合

from icecream import ic

num = 1
name = "aaa"

def ic_debug(num, name):
    ic(num)
    ic(name)

if __name__ == '__main__':
    debug(num, name)

何も表示する時に指定していないですね!これでどうなるかというと。

icecreamさんが美味しく表示してくれています。ごちそうさまですw

icecreamで実行行数の確認をする場合

こっちの場合はさらに楽になります。

from icecream import ic

def ic_functions(boolian:bool):
    if boolian:
        ic()
    else:
        ic()

if __name__ == '__main__':
    ic_functions(boolian=False)

inspectを利用した実行位置の特定とか何も入ってなくて、非常にシンプルになってます。これでどうなるかというと。

実行行数も、関数名も出してくれてます。本当にごちそうさまです。

【参考】pypiとgithubの紹介

icecreamのpypiとgithubのリンクを貼っておきます。興味わいた方は一度見てみてください。

icecream
Never use print() to debug again; inspect variables, expressions, and program execution with a single, simple function call.

Server Error · GitHub

まとめ

今回は、【Python debugを楽にするicecreamって知ってますか?】という内容で、icecreamというライブラリの紹介をしていきました。

試食会レベルのライトな内容ですが、便利だなぁと思ってもらえたら何よりです。

めんどくささをなくすためにスクリプトを書いていくので、そのためにめんどくささを生んでいては本末転倒ということで、debugもどんどんライトに処理できるようにしていければいいですよね。

タイトルとURLをコピーしました