タイトル通り.inspect モジュールを利用する.
- import sys, inspect
- def my_exit():
- frame = inspect.currentframe().f_back
- path = frame.f_code.co_filename.split('/')
- print("file:"+path[-1] +" in:"+frame.f_code.co_name+", line:"+str(frame.f_lineno))
- sys.exit()
Perl でもできる(さらにエラーメッセージを引数としてもらう).
- sub my_exit {
- my ($arg_str) = @_;
- my ($pkg, $file, $line) = caller;
- chomp($arg_str);
- print "Error $arg_str, in $file line $line\n";
- die;
- }
Perl の方が記述はシンプルなんだよなぁ.