文章目录 案例介绍 准备工作 细节设计 代码汇总 运行结果 后记 案例介绍 能不能借助现成的工具,为我们输出当前脚本中的函数
文章目录
- 案例介绍
- 准备工作
- 细节设计
- 代码汇总
- 运行结果
- 后记
案例介绍
能不能借助现成的工具,为我们输出当前脚本中的函数调用关系呢?可以。
准备工作
- 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 软件。