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

案例介绍

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

准备工作

  • Python3
  • pycallgraph 库

细节设计

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

代码汇总

# coding: utf-8 
# !/usr/bin/python
"""
@File       :   流程图.py
@Author     :   jiaming
@Modify Time:   2020/5/10 13:13    
@Contact    :   https://jiaming.blog.csdn.net/
@微信公众号答疑:   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 软件。

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jia ming

谢谢投食哦~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值