関数内から関数の名前を決定する方法はありますか?
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>