# FunctionCallGraph **Repository Path**: qin-hongwei/FunctionCallGraph ## Basic Information - **Project Name**: FunctionCallGraph - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-12-18 - **Last Updated**: 2024-12-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 函数调用图生成器 这个Python脚本可以帮助你生成一个函数调用图,以便于了解代码的执行流程。对于大型项目或者新接手的项目,这会是一个非常有用的工具。 ## 如何使用 1. 首先,确保你的电脑上已经安装了Python和以下Python库: - ast - os - graphviz - colorsys - argparse 2. 运行脚本,并使用 `-d` 参数指定要分析的目录。例如: ``` python makeimgbymyself2.py -d /path/to/your/project ``` 如果不指定 `-d` 参数,脚本将分析当前目录。 3. 脚本将生成一个函数调用图,并保存为PNG格式的图片。图片的名字将是主函数的名字和主函数所在的文件名。同时,脚本还会生成一个Markdown文件,其中包含了函数调用的详细信息。生成的图和Markdown文件保存到被分析的目录的 FunctionCallGraph 子目录中。![train py_training_report_FunctionCallGraph](https://github.com/1738970143/FunctionCallGraph/assets/90264219/e46a1624-1023-4c21-a65c-22f695595d17) 4. 推荐使用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. 如果项目中存在多个主函数,脚本会为每个主函数生成一个函数调用图。