本文共 1585 字,大约阅读时间需要 5 分钟。
前言
当代码量庞大时,各类函数和类之间的调用关系往往难以直观理清。此时,调用关系图就派上用场了。
引用自https://www.cnblogs.com/GO-NO-1/p/7155684.html
准备工作
- 安装graphviz,可以通过命令行安装或下载安装包
- 安装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()生成的调用关系图可见于[图示](图片链接)。