関数が行うすべての関数呼び出しを見つける最良の方法は何ですか? 実行時にこれを行いたいです(デコレータを使用する可能性があります)。
ソースコードを取得してinspect
(これは、ソースコードにアクセスする必要があることを意味します...したがって、インタラクティブなインタープリターのサポートはありません)、それを解析する最良の方法はありast
ますか?より良い方法はありますか?
Python 2.7 が推奨されますが、必須ではありません。自分でできるくらいシンプルにしたい。他の人がそれを行った場合、私はソースコードを見て、それを理解できるようにします.
最終的には、特定のデコレータを使用した関数の呼び出しのみに関心がありますが、SO にはその部分に対する回答が既にあります。
編集:
def f():
return g(1)
@Interesting
def g(x):
return x + 1
print what_interesting_functions_does_this_call(f)
版画
(<function g at 0x7f2a1ec72a28>,)
Python がいかに動的であるかという理由で、これは一般的なケースでは不可能であることがわかりました。しかし、いくつかのケースのサブセットをカバーできますか?
参考までに:「あなたはばかです。なぜ別の関数によってどの関数が呼び出されているのかを知ることができると思いますか?これが役立つ理由が思いつかないので、あなたにとって役に立たないはずです」大丈夫な反応です。私が知りたいのですが。