0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Pythonで実行中の関数と変数の名前を簡単に取得する

Last updated at Posted at 2024-11-12

環境

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}変数の値がおかしい。")
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?