查找函数进行的所有函数调用的最佳方法是什么?我想在运行时执行此操作(可能使用装饰器)。
是检索源代码的最佳方法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 的动态性,这在一般情况下是不可能的。但我可以涵盖一些案例吗?
仅供参考:“你是个白痴,你为什么会认为能够分辨出另一个函数调用了哪些函数,我想不出任何理由为什么这会有用,因此它一定对你没有用”是一个好的回应。我想知道。