環境
Python3.6以降
取得する方法
例外処理などを書くときにで関数や変数を決め打ちして書き出すこともできるが、関数や変数の名前に変更があるとめんどい。
def hoge(fuga):
raise ValueError("hoge関数のfuga変数の値がおかしい。")
なので、vscodeなどのエディターを使い、関数や変数の名前を一括して変更できる機能に期待して次のように書く。
何もインポートする必要はない。
def hoge(fuga):
f_name = hoge.__name__
v_name = f"{fuga=}"[:f"{fuga=}".find("=")]
raise ValueError(f"{f_name}関数の{v_name}変数の値がおかしい。")
関数名のみinspect
をインポートすることで次のように書ける。この場合、関数名を書き換える際にエディターの名称を変更する機能を使う必要もなくなる。
import inspect
def hoge(fuga):
f_name = inspect.currentframe().f_code.co_name
v_name = f"{fuga=}"[:f"{fuga=}".find("=")]
raise ValueError(f"{f_name}関数の{v_name}変数の値がおかしい。")