这个Python脚本可以帮助你生成一个函数调用图,以便于了解代码的执行流程。对于大型项目或者新接手的项目,这会是一个非常有用的工具。
-
首先,确保你的电脑上已经安装了Python和以下Python库:
- ast
- os
- graphviz
- colorsys
- argparse
-
运行脚本,并使用
-d
参数指定要分析的目录。例如:
python makeimgbymyself2.py -d /path/to/your/project
如果不指定 -d
参数,脚本将分析当前目录。
-
脚本将生成一个函数调用图,并保存为PNG格式的图片。图片的名字将是主函数的名字和主函数所在的文件名。同时,脚本还会生成一个Markdown文件,其中包含了函数调用的详细信息。生成的图和Markdown文件保存到被分析的目录的 FunctionCallGraph 子目录中。
-
推荐使用boardmix来通过md文件生成可以修改拖拽编辑的思维导图 https://boardmix.cn/app/home
-
脚本首先会遍历指定目录下的所有Python文件,并使用Python的
ast
模块解析每个文件的抽象语法树。 -
脚本会查找所有的函数定义和函数调用,并记录下来。如果一个函数在
if __name__ == '__main__':
的条件下被调用,那么这个函数会被视为一个主函数。 -
对于每个主函数,脚本都会生成一个函数调用图。在这个图中,每个节点都代表一个函数,每个边都代表一个函数调用。节点的颜色表示这个函数调用了多少个其他函数:颜色越深,调用的函数越多。
-
最后,脚本会将生成的函数调用图保存为PNG格式的图片,并将函数调用的详细信息保存为一个Markdown文件。
-
脚本只能分析静态的函数调用关系,不能分析动态的或者间接的函数调用。例如,如果一个函数是通过变量或者数据结构(如列表或字典)调用的,那么这个函数调用就无法被分析。
-
脚本只能分析Python代码,不能分析其他语言的代码。
-
脚本会自动忽略Python的内置函数和一些常用的库函数,以避免生成过于复杂的函数调用图。如果你需要分析这些函数,你可以修改脚本中的
filter
变量。 -
如果项目中存在多个主函数,脚本会为每个主函数生成一个函数调用图。