实现过程
第一步:
1.pip install pycallgraph
第二步:
1.安装graphviz
A.macOS brew安装:brew install graphviz
B.windows https://pythondict.com/go/?url=https://graphviz.gitlab.io/_pages/Download/windows/graphviz-2.38.msi,
配置环境变量后,然后重启
2.配置
第三步:
1.运行代码就行
from pycallgraph import PyCallGraph
from pycallgraph.output import GraphvizOutput
from pycallgraph import Config
from pycallgraph import GlobbingFilter
def work():
print(111)
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():
graphviz = GraphvizOutput()
graphviz.output_file = 'basic.png'
config = Config()
config.max_depth = 10 # 控制最大追踪深度
with PyCallGraph(output=graphviz, config=config):
#work()
person = Person()
for a in range(10):
person.add_banana(Banana())
person.eat_bananas()
if __name__ == '__main__':
main()
资料来源:
-a.https://blog.csdn.net/qq_46614154/article/details/105918067?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161381212116780274155081%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=161381212116780274155081&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_v2~rank_v29-25-105918067.pc_search_result_cache&utm_term=python%E4%BE%9D%E8%B5%96%E5%9B%BE
-b.https://blog.csdn.net/weixin_34054931/article/details/94327636?ops_request_misc=&request_id=&biz_id=102&utm_term=%E5%9C%A8Python%E4%B8%AD%E5%88%9B%E5%BB%BA%E4%BE%9D%E8%B5%96%E5%85%B3%E7%B3%BB%E5%9B%BE&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-4-94327636.pc_search_result_cache