ラベル Python の投稿を表示しています。 すべての投稿を表示
ラベル Python の投稿を表示しています。 すべての投稿を表示

2021年12月7日火曜日

Python で終了する時の呼び出し関数,行番号を報告する

 タイトル通り.inspect モジュールを利用する.
  1. import sys, inspect
  2.  
  3. def my_exit():
  4. frame = inspect.currentframe().f_back
  5. path = frame.f_code.co_filename.split('/')
  6. print("file:"+path[-1] +" in:"+frame.f_code.co_name+", line:"+str(frame.f_lineno))
  7. sys.exit()

Perl でもできる(さらにエラーメッセージを引数としてもらう).
  1. sub my_exit {
  2. my ($arg_str) = @_;
  3. my ($pkg, $file, $line) = caller;
  4. chomp($arg_str);
  5. print "Error $arg_str, in $file line $line\n";
  6. die;
  7. }

Perl の方が記述はシンプルなんだよなぁ.