関数名に動的にアクセスする
関数自体の内部から関数名を決定することは、さまざまなシナリオで役立ちます。これを実現する 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 サイトの他の関連記事を参照してください。