呼び出されたメソッドで呼び出し元のメソッド名を取得するにはどうすればいいですか? 質問する

呼び出されたメソッドで呼び出し元のメソッド名を取得するにはどうすればいいですか? 質問する

Python: 呼び出されたメソッドで呼び出し元のメソッド名を取得するにはどうすればよいでしょうか?

2 つの方法があると仮定します。

def method1(self):
    ...
    a = A.method2()

def method2(self):
    ...

method1 に変更を加えたくない場合は、method2 で呼び出し元の名前 (この例では、名前は method1) を取得するにはどうすればよいですか?

ベストアンサー1

フレーム情報を調べるおよびその他の関連関数がinspect役立ちます:

>>> import inspect
>>> def f1(): f2()
... 
>>> def f2():
...   curframe = inspect.currentframe()
...   calframe = inspect.getouterframes(curframe, 2)
...   print('caller name:', calframe[1][3])
... 
>>> f1()
caller name: f1

このイントロスペクションはデバッグと開発を支援することを目的としています。本番環境の機能目的でこれに依存することはお勧めできません。

おすすめ記事