python3でエラーになるので
frame = inspect.currentframe(depth + 1)
から
frame = inspect.currentframe().f_back
に修正
import inspect
import os
def location(depth=0):
frame = inspect.currentframe().f_back
return os.path.basename(frame.f_code.co_filename), frame.f_code.co_name, frame.f_lineno
def func1():
print(location())
def main():
print(location())
func1()
if __name__ == '__main__':
main()
exit(0)
('a.py', 'main', 13)
('a.py', 'func1', 10)
参考
Python で現在のファイル名と行番号を調べる。 - kなんとかの日記 http://d.hatena.ne.jp/kwatch/20100410/1270851205
Python Tips:現在の関数の名前や引数を取得したい - Life with Python http://www.lifewithpython.com/2015/11/python-get-function-name.html
実行中の関数・メソッド名を取得したい - Qiita http://qiita.com/megmogmog1965/items/0b4ea3d58e34f1854158