ホームページ  >  記事  >  バックエンド開発  >  Python で関数名に動的にアクセスするにはどうすればよいですか?

Python で関数名に動的にアクセスするにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-28 22:13:01784ブラウズ

How Can I Dynamically Access a Function's Name in Python?

関数名に動的にアクセスする

関数自体の内部から関数名を決定することは、さまざまなシナリオで役立ちます。これを実現する 1 つの方法は、inspect モジュールを使用することです。

Inspect Stack の使用

inspect.stack() 関数は、アクティブなスタック トレースを表すフレームのリストを返します。 。各フレームの 3 番目の要素は、フレームを呼び出した関数の名前に対応します。

次の例では、foo 関数は、inspect.stack():

<code class="python">import inspect

def foo():
    print(inspect.stack()[0][3])
    print(inspect.stack()[1][3])  # Prints the caller of foo's name

foo()</code>

出力:

foo
<module_caller_of_foo>

代替アプローチ

inspect.stack は堅牢なメソッドですが、制限があります。たとえば、すべての環境やスタックを操作する他の関数内で動作するとは限りません。あるいは、現在のモジュールまたは関数の名前を保持するグローバル __name__ 属性にアクセスすることもできます。ただし、このアプローチは普遍的に適用できるわけではありません。

以上がPython で関数名に動的にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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