博客
关于我
Mac使用graphviz绘制Python代码的函数调用关系图
阅读量:746 次
发布时间:2019-03-23

本文共 1585 字,大约阅读时间需要 5 分钟。

前言

当代码量庞大时,各类函数和类之间的调用关系往往难以直观理清。此时,调用关系图就派上用场了。

引用自https://www.cnblogs.com/GO-NO-1/p/7155684.html

准备工作

  1. 安装graphviz,可以通过命令行安装或下载安装包
  2. 安装pycallgraph,通过pip命令安装即可

示例

        # 在主函数之前添加以下代码        from pycallgraph import PyCallGraph        from pycallgraph.output import GraphvizOutput        graphviz = GraphvizOutput()        graphviz.output_file = 'basic.png'        with PyCallGraph(output=graphviz):            main() # 替换为您的主函数逻辑    

例如:

        # 代码示例        class Banana:            def eat(self):                pass        class Person:            def __init__(self):                self.no_bananas()            def no_bananas(self):                self.bananas = []            def add_banana(self, banana):                self.bananas.append(banana)            def eat_bananas(self):                [banana.eat() for banana in self.bananas]                self.no_bananas()        def main():            person = Person()            for a in range(10):                person.add_banana(Banana())            person.eat_bananas()        if __name__ == '__main__':            # 加入代码之前的五行            from pycallgraph import PyCallGraph            from pycallgraph.output import GraphvizOutput            graphviz = GraphvizOutput()            graphviz.output_file = 'basic.png'            with PyCallGraph(output=graphviz):                main()    

生成的调用关系图可见于[图示](图片链接)。

你可能感兴趣的文章
mysql以下日期函数正确的_mysql 日期函数
查看>>
mysql以服务方式运行
查看>>
mysql优化--索引原理
查看>>
MySQL优化之BTree索引使用规则
查看>>
MySQL优化之推荐使用规范
查看>>
Webpack Critical CSS 提取与内联教程
查看>>
mysql优化概述(范式.索引.定位慢查询)
查看>>
MySQL优化的一些需要注意的地方
查看>>
mysql优化相关
查看>>
MySql优化系列-优化版造数据(存储过程+函数+修改存储引擎)-2
查看>>
MySql优化系列-进阶版造数据(load data statment)-3
查看>>
MySql优化系列-造数据(存储过程+函数)-1
查看>>
MySQL优化配置详解
查看>>
Mysql优化高级篇(全)
查看>>
mysql会员求积分_MySql-统计所有会员的最高前10次的积分和
查看>>
mysql会对联合索性排序优化_MySQL索引优化实战
查看>>
MySQL作为服务端的配置过程与实际案例
查看>>
Mysql使用命令行备份数据
查看>>