如何在Python中跟踪函数调用?

问题描述 投票:0回答:1

如何从头到尾跟踪Python代码?这显示了整个执行流程,从该流程首先被调用的功能,执行的操作到整个流程的结束。

查看此示例代码,它接收一个操作类型(加法或减法)和两个值(x和y),根据该操作执行这两个值,最后显示一条消息:

def calc(op, x, y):
    if op == 'sum':
        return x + y
    elif op == 'subtraction':
        return x - y


def msg(op, x, y):
    if op == 'sum':
        result = calc(op, x, y)
        return "The result of the sum is: " + str(result)
    elif op == 'subtraction':
        result = calc(op, x, y)
        return "The result of the subtraction is: " + str(result)


if __name__ == '__main__':
    my_sum = msg('sum', 3, 2)
    print(my_sum)

因此,这种“从头到尾的跟踪”看起来像这样:

  1. 第17行:if __name__ == '__main__':
  2. 第18行:my_sum = msg('sum', 3, 2)
  3. 第8行:def msg(op, x, y):
  4. 第9行:if op == 'sum':
  5. 第10行:result = calc(op, x, y)
  6. 第1行:def calc(op, x, y):
  7. 第2行:if op == 'sum':
  8. 第3行:return x + y
  9. 第11行:return "The result of the sum is:" + str(result)
  10. 第19行:print(my_sum)

最后,它返回消息“总和为:5”

python debugging tracking traceback ipdb
1个回答
0
投票

您可以分析您的Python脚本。在标准库中,Python本身具有[profilers](https://docs.python.org/3/library/profile.html#introduction-to-the-profilers)来分析和跟踪脚本。此外,还有一个名为[Tuna](https://github.com/nschloe/tuna)的可视库,可以帮助您以图形方式分析脚本。也许,您可以使用另一种工具轻松跟踪整个脚本,称为[KCacheGrind](https://kcachegrind.github.io/html/Home.html),该脚本显示了函数调用的可视化跟踪。

© www.soinside.com 2019 - 2024. All rights reserved.