ホームページ  >  記事  >  バックエンド開発  >  呼び出し元のメソッドを変更せずに、Python で呼び出し元のメソッド名を取得するにはどうすればよいですか?

呼び出し元のメソッドを変更せずに、Python で呼び出し元のメソッド名を取得するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-17 21:23:02495ブラウズ

How can I retrieve the caller's method name in Python without modifying the caller method?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。