Python:跟踪python函数激活的源代码行

时间:2019-06-02 21:57:34

标签: python function file open-source inspect

我知道如何使用inspect模块通过

在其源代码中查找python函数的位置。
import inspect
inspect.getsourcefile(random_function)

但是, 在运行python函数时,或者 运行后,如何找到它在使用过程中/引用的所有源代码片段?个人跑步?

例如,如果我运行random_function(arg1=1, arg2=2)random_function(arg1=1, arg5=3.5),我想知道模块每次使用了哪个不同部分。

是否有类似示例here的内容?我将不胜感激。

1 个答案:

答案 0 :(得分:0)

您可以通过使用dis模块获取字节码信息来做到这一点。例如:

import dis
import numpy as np

def main():
    array = np.zeros(shape = 5)

if __name__ == '__main__':
    print(dis.dis(main))

结果:

  5           0 LOAD_GLOBAL              0 (np)
              2 LOAD_ATTR                1 (zeros)
              4 LOAD_CONST               1 (5)
              6 LOAD_CONST               2 (('shape',))
              8 CALL_FUNCTION_KW         1
             10 STORE_FAST               0 (array)
             12 LOAD_CONST               0 (None)
             14 RETURN_VALUE