1. ホーム
  2. python

[解決済み] 関数名をその関数内から判断する(トレースバックを使用しない)。

2022-03-16 02:26:45

質問

Pythonでは traceback モジュールの中で、関数の名前を決定する方法はあるのでしょうか?

例えば、あるモジュール foo という関数で bar . を実行するとき foo.bar() の方法はありますか? bar を知ることができます。 bar の名前は? あるいはもっといいのは foo.bar の名前は?

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

解決方法は?

Pythonには、関数自身の中で関数やその名前にアクセスする機能がありません。それは、これまで 提案 が、却下されました。もし自分でスタックを弄りたくないのであれば、どちらかというと "bar" または bar.__name__ は、コンテキストによって異なります。

与えられた拒否通知です。

このPEPは却下します。どのように実装すべきか、エッジケースにおいて正確なセマンティクスはどうあるべきか、重要なユースケースが十分に示されていないため、明確ではありません。