如何在调用函数时判断引用了什么?

时间:2017-10-17 21:33:37

标签: python debugging

如何判断在python中调用函数时会发生什么,例如,我已经导入了一个模块并希望从中调用一个函数。我需要告诉这个函数调用什么函数以及它们在执行时所处的位置。非常类似于回溯,但没有错误。 traceback.format_stack()无法正常工作,因为我无法将其放入源代码中运行。任何想法如何使用它?

示例:

import amodule
#do something here?
amodule.some_method()
#or maybe here?

输出:

File <fname1> in line 13, in <module>
    module.some_method()
File <fname2> in line 53, in <module>
    module2.some_other_method()

等等

我怎样才能最好地完成这项工作?

编辑: 我想到的用途是有一个由几个文件组成的模块,它们相互引用。如果我想编辑特定的功能,我需要知道编辑的位置和内容。我宁愿不搜索源代码来找到发生在

的整个长链

1 个答案:

答案 0 :(得分:-1)

您可以使用Python Call Graph

调用图显示从哪里调用哪些函数/方法。

或者,您可以在调试器中单步调试代码。

但我强烈建议阅读代码,并试图理解它的作用。

  

我宁愿不搜索源代码来查找

所发生的整个长链

没有神奇的捷径。阅读代码可以告诉你它是如何工作的。文档字符串和其他注释甚至可能告诉您为什么它以这种方式工作。为什么如何更重要的是。