博客
关于我
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()    

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

你可能感兴趣的文章
PostgreSQL的安装与使用指南
查看>>
postgresql编译安装及配置
查看>>
Postgresql运维常用命令_登录_权限设置_创建用户_创建数据库_创建postgis数据库_远程连接---Postgresql工作笔记009
查看>>
PostgreSQL远程连接配置
查看>>
PostgreSQL远程连接,发生致命错误:没有用于主机“…”,用户“…”,数据库“…”,SSL关闭的pg_hba.conf记录
查看>>
PostgreSQL配置文件--AUTOVACUUM参数
查看>>
PostgreSQL配置文件--QUERY TUNING
查看>>
PostgreSQL配置文件--WAL
查看>>
PostgreSQL配置文件--其他
查看>>
PostgreSQL配置文件--复制
查看>>
PostgreSQL配置文件--实时统计
查看>>
PostgreSQL配置文件--资源使用(除WAL外)
查看>>
postgres访问认证配置文件pg_hba.conf
查看>>
Postgres间隔大量写IO的解决办法
查看>>
Posting JSON to Spring MVC Controller
查看>>
Qt开发——可隐藏的对话框
查看>>
Qt开发——QWebEngineView简易网络浏览器(二)
查看>>
Postman List类型传参方法
查看>>
Qt开发——QWebEngineView浏览器开发
查看>>
Postman —— 实现接口自动化测试!
查看>>