Skip to content

函数调用图生成器 这个Python脚本可以帮助你生成整个项目的函数调用图,以便于了解代码的执行流程。对于大型项目或者新接手的项目,这会是一个非常有用的工具。

Notifications You must be signed in to change notification settings

WHUEugene/FunctionCallGraph

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 

Repository files navigation

函数调用图生成器

这个Python脚本可以帮助你生成一个函数调用图,以便于了解代码的执行流程。对于大型项目或者新接手的项目,这会是一个非常有用的工具。

如何使用

  1. 首先,确保你的电脑上已经安装了Python和以下Python库:

    • ast
    • os
    • graphviz
    • colorsys
    • argparse
  2. 运行脚本,并使用 -d 参数指定要分析的目录。例如:

python makeimgbymyself2.py -d /path/to/your/project

如果不指定 -d 参数,脚本将分析当前目录。

  1. 脚本将生成一个函数调用图,并保存为PNG格式的图片。图片的名字将是主函数的名字和主函数所在的文件名。同时,脚本还会生成一个Markdown文件,其中包含了函数调用的详细信息。生成的图和Markdown文件保存到被分析的目录的 FunctionCallGraph 子目录中。train py_training_report_FunctionCallGraph

  2. 推荐使用boardmix来通过md文件生成可以修改拖拽编辑的思维导图 https://boardmix.cn/app/home

image

工作原理

  1. 脚本首先会遍历指定目录下的所有Python文件,并使用Python的 ast 模块解析每个文件的抽象语法树。

  2. 脚本会查找所有的函数定义和函数调用,并记录下来。如果一个函数在 if __name__ == '__main__': 的条件下被调用,那么这个函数会被视为一个主函数。

  3. 对于每个主函数,脚本都会生成一个函数调用图。在这个图中,每个节点都代表一个函数,每个边都代表一个函数调用。节点的颜色表示这个函数调用了多少个其他函数:颜色越深,调用的函数越多。

  4. 最后,脚本会将生成的函数调用图保存为PNG格式的图片,并将函数调用的详细信息保存为一个Markdown文件。

注意事项

  1. 脚本只能分析静态的函数调用关系,不能分析动态的或者间接的函数调用。例如,如果一个函数是通过变量或者数据结构(如列表或字典)调用的,那么这个函数调用就无法被分析。

  2. 脚本只能分析Python代码,不能分析其他语言的代码。

  3. 脚本会自动忽略Python的内置函数和一些常用的库函数,以避免生成过于复杂的函数调用图。如果你需要分析这些函数,你可以修改脚本中的 filter 变量。

  4. 如果项目中存在多个主函数,脚本会为每个主函数生成一个函数调用图。

About

函数调用图生成器 这个Python脚本可以帮助你生成整个项目的函数调用图,以便于了解代码的执行流程。对于大型项目或者新接手的项目,这会是一个非常有用的工具。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages