ホームページ >バックエンド開発 >Python チュートリアル >Python で関数が自分自身の名前を見つけるにはどうすればよいでしょうか?
関数のアイデンティティの探求: 内部からその名前を明らかにする
コーディングの領域では、関数は多くの場合、特定のタスクを実行する構成要素として機能します。そしてより大きなプログラムの基礎を形成します。しかし、現在実行している関数の名前を知りたいと思ったことはありませんか?
foo という名前の関数が、その ID を「Hello, world! 私の名前は foo です」と宣言することを想像してみてください。しかし、明示的にハードコーディングせずに foo が自分自身の名前を決定するにはどうすればよいでしょうか?
動的イントロスペクションの領域に入ります。検査モジュールのおかげで、現在実行中の関数に関する情報をその関数内から取得することができます。スタックの奥深くまで掘り下げると、inspect.stack() メソッドはフレームのリストを返します。各フレームは現在の実行スタック内の呼び出しを表します。
この場合、inspect.stack()[0][ 3] は現在の関数のフレームを表し、inspect.stack()[1][3] は現在の関数の呼び出し元を表します。この知識を利用して、次のコードにより、foo は静的文字列に頼ることなくそのアイデンティティを宣言できます:
<code class="python">import inspect def foo(): print("my name is", inspect.stack()[0][3]) print("caller of foo:", inspect.stack()[1][3]) foo()</code>
そして魔法のように、出力は次のことを明らかにします:
my name is foo caller of foo: <module_caller_of_foo>
内省の力を利用する、関数は自身の名前を識別できるようになり、コード実行の絶え間なく変化する状況の中で動的に適応し、その ID を伝達できるようになりました。
以上がPython で関数が自分自身の名前を見つけるにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。