博客
关于我
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-递归查询(二)
查看>>
MySQL5.1安装
查看>>
mysql5.5和5.6版本间的坑
查看>>
mysql5.5最简安装教程
查看>>
mysql5.6 TIME,DATETIME,TIMESTAMP
查看>>
mysql5.6.21重置数据库的root密码
查看>>
Mysql5.6主从复制-基于binlog
查看>>
MySQL5.6忘记root密码(win平台)
查看>>
MySQL5.6的Linux安装shell脚本之二进制安装(一)
查看>>
MySQL5.6的zip包安装教程
查看>>
mysql5.7 for windows_MySQL 5.7 for Windows 解压缩版配置安装
查看>>
Webpack 基本环境搭建
查看>>
mysql5.7 安装版 表不能输入汉字解决方案
查看>>
MySQL5.7.18主从复制搭建(一主一从)
查看>>
MySQL5.7.19-win64安装启动
查看>>
mysql5.7.19安装图解_mysql5.7.19 winx64解压缩版安装配置教程
查看>>
MySQL5.7.37windows解压版的安装使用
查看>>
mysql5.7免费下载地址
查看>>