当前位置 : 主页 > 编程语言 > python >

【案例】为你脚本中的函数打印调用流程图?(样例版)

来源:互联网 收集:自由互联 发布时间:2022-06-24
文章目录 ​​案例介绍​​ ​​准备工作​​ ​​细节设计​​ ​​代码汇总​​ ​​运行结果​​ ​​后记​​ 案例介绍 能不能借助现成的工具,为我们输出当前脚本中的函数


文章目录

  • ​​案例介绍​​
  • ​​准备工作​​
  • ​​细节设计​​
  • ​​代码汇总​​
  • ​​运行结果​​
  • ​​后记​​

案例介绍

能不能借助现成的工具,为我们输出当前脚本中的函数调用关系呢?可以。

准备工作

  • Python3
  • pycallgraph 库

细节设计

按照代码样例,在入口处设置好需要调用的函数名称、以及函数调用流程图的文件名、主程序入口名称即可。

代码汇总

# coding: utf-8
# !/usr/bin/python
"""
@File : 流程图.py
@Author : jiaming
@Modify Time: 2020/5/10 13:13
@Contact :
@微信公众号答疑: codenough
@Desciption : 绘制代码执行流程图
"""

from pycallgraph import PyCallGraph
from pycallgraph.output import GraphvizOutput
from pycallgraph import Config
from pycallgraph import GlobbingFilter

def math(x):
y = x + 1
return y
def main():
print(math(3))

# 你的主函数代码。
if __name__ == "__main__":
config = Config()
# 关系图中包括(include)哪些函数名。
# 如果是某一类的函数,例如类gobang,则可以直接写'gobang.*',表示以gobang.开头的所有函数。(利用正则表达式)。
config.trace_filter = GlobbingFilter(include=[
'main',
'math',
])
graphviz = GraphvizOutput()
graphviz.output_file = 'graph.png'
with PyCallGraph(output=graphviz, config=config):
main()

运行结果

【案例】为你脚本中的函数打印调用流程图?(样例版)_流程图

后记

以上就是我们这期的内容啦,目前还只是样例版本,还不涉及到跨文件的引用情况。如果确实很需要看到这种调用关系,可以尝试使用 Source Insight 软件。

【案例】为你脚本中的函数打印调用流程图?(样例版)_流程图_02


网友评论