今回は、プログラムのどこを流れたかを確認する関数を作成しました。
プログラムの流れをトレースするのに便利な関数です
print文により、ソースファイル名、関数名、行番号が表示されます。
以下の変数に格納されます。
fileNm ソースファイル名
funcNm 関数名
lineNo 行番号
表示フォーマットは、自分の好きなようにカスタマイズしてくださいね!
現在は、こんな感じです。
test.py main:15
test.py func:12
🔸トレースに便利な関数
def dbg():
frame = inspect.currentframe().f_back
fileNm = os.path.basename(frame.f_code.co_filename)
funcNm = frame.f_code.co_name
lineNo = frame.f_lineno
print( fileNm, "%s:%s" %(funcNm, lineNo) )
🔸ソース全体 ( test.py )
こちらをコピペすれば動作が確認できると思います。
import inspect
import os
def dbg():
frame = inspect.currentframe().f_back
fileNm = os.path.basename(frame.f_code.co_filename)
funcNm = frame.f_code.co_name
lineNo = frame.f_lineno
print( fileNm, "%s:%s" %(funcNm, lineNo) )
def func():
dbg()
def main():
dbg()
func()
main()
以下のリンク先のNpdbですぐに確認しよう!
----------------------------------------------------------------------------------
誰でも簡単に使える、 クラウド パイソンデバッカー (IDE/編集可能)
Npdb
----------------------------------------------------------------------------------