Python でソースファイル名と関数名と行数を出力
Python だとデフォルトのエラー出力がわかりやすいので、あまり困らないが、調べてみた。
inspect_test.py
inspectというモジュールを使えば良い。 ファイル名と関数名と行数をタプルで返す関数filename_funcname_linenoは以下の様になる。
import inspect
def filename_funcname_lineno():
funcname = inspect.currentframe().f_back.f_code.co_name
filename = inspect.currentframe().f_back.f_code.co_filename
lineno = inspect.currentframe().f_back.f_lineno
return filename, funcname, lineno
def hoge():
print "foo"
print filename_funcname_lineno()
print "bar"
if __name__ == "__main__":
hoge()
上記を実行すると以下のように出力される。