Python で呼び出し元のメソッド名を取得する
マルチレベルの関数呼び出しを扱う場合、メソッド名にアクセスすると便利です。呼び出しメソッド。これにより、呼び出されたメソッド内に貴重なコンテキストが提供されます。この記事では、呼び出し元メソッドへの変更を避けて、Python で呼び出し元のメソッド名を取得する方法について説明します。
Inspect の利用
Python の検査モジュールには、アクセスするための関数がいくつか用意されています。発信者に関する情報。 Inspection.getframeinfo() と関連関数を使用すると、フレーム スタックを移動して関連情報を取得できます。
実装
以下は、inspect の使用方法のデモンストレーションです。
import inspect def f1(): f2() def f2(): curframe = inspect.currentframe() calframe = inspect.getouterframes(curframe, 2) print('caller name:', calframe[1][3]) f1()
この例では、呼び出し元の名前は、calframe を使用して f2 関数で取得されます。 変数。 calframe1 の値には、呼び出し元の名前 (この場合は f1) が含まれます。
注意
イントロスペクションはデバッグや開発には役立ちますが、本番関連の目的には依存しないでください。その結果はさまざまな要因の影響を受ける可能性があるため、重要なシナリオでは慎重に対処する必要があります。
以上が呼び出し元のメソッドを変更せずに、Python で呼び出し元のメソッド名を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。