関数内から関数名を決定する 質問する

関数内から関数名を決定する 質問する

関数内から関数の名前を決定する方法はありますか?

def foo():
    print("my name is", __myname__)  # <== how do I calculate this at runtime?

上記の例では、 の本体は、ハードコーディングせずにfoo何らかの方法で関数名にアクセスします。出力は次のようになります。"foo"

>>> foo()
my name is foo

ベストアンサー1

import inspect

def foo():
   print(inspect.stack()[0][3])
   print(inspect.stack()[1][3])  # will give the caller of foos name, if something called foo

foo()

出力:

foo
<module_caller_of_foo>

おすすめ記事