python 函数调用图_AI量化的py函数调用图工具:pycallgraph

本文介绍了一个强大的Python工具pycallgraph,它能够自动生成Python代码的函数调用流程图,帮助理解程序逻辑。尤其适用于非专业程序员的大数据和金融量化分析师。文章通过一个实际案例展示了如何使用pycallgraph并提供了详细的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

AI量化的py函数调用图工具:pycallgraph

对于初学者而言,函数调用图工具,可以工具源码,自动生成函数的运行流程,以及调用关系。

大大降低学习拿督,快速把握程序逻辑。

大部分从事大数据、金融量化的一线人员,都不是专业程序员,这类工具,可以节约大量的时间成本。

在TopQuant.vip极宽网站的网盘,以及QQ群文件中有一个小软件,即 Python流程图绘制软件 CODINGRAPH。

使用该软件,拷贝py代码就可以自动绘制流程图,对其他编程语言也适用。

下面介绍的 pycallgraph ,属于内置式的函数调用图工具,更加专业。

pycallgraph被称为python代码工具的神器,通过图形方式,追踪函数的相互调用的情况。

以下是工具Top极宽《backtrader课件-F系列》,第一个案例btr001,生成的函数调用图:

课件目录参见:http://www.topquant.vip/btr-f2019.htm

由上图可以看出,如果说 pycallgraph 的缺点,就是生成的函数调用图,太过详细,连不同模块,底层函数class类定义的init初始化函数,都有节点图。

不过pycallgraph绘制的函数调用图,深度和节点,是可以通过参数控制的,这个请大家参看pycallgraph的相关文档。

zw测试了n多类似的工具,大部分都是采用外部调用,或者生成web结果数据,使用相对繁琐。

pycallgraph,属于少见的内置式辅助工具,使用非常简单:

通常只需两个步骤:

#1,import导入pycallgraph模块库

from pycallgraph import PyCallGraph

from pycallgraph.output import GraphvizOutput

#2,设置参数,和需要调试的代码

graphviz = GraphvizOutput()

graphviz.output_file = ‘tmp/btr001.png’

#

with PyCallGraph(output=graphviz):

code-to-do(需要调试代码)

code-to-do,是用户需要调试代码,可以整理为一个函数,也可以是段代码块block

以下是 本blog采用的案例课件btr001.py,对应的调试版本:

from pycallgraph import PyCallGraph

from pycallgraph.output import GraphvizOutput

#----------------------

graphviz = GraphvizOutput()

graphviz.output_file = 'tmp/btr001.png'

with PyCallGraph(output=graphviz):

#1.1

rs0='data/' #rs0='/TQData/'

rsyb0,rbas0=rs0+'stk/',rs0+'inx/'

syblst=['002046']

#baslst=['000001'] #上证

tim0str,tim9str='2018-01-01','2018-12-31'

#1.2

qx=tq.tq_init('f01',tim0str=tim0str,tim9str=tim9str)

#

tq.pools_get4flst(qx,rsyb0,syblst,fgInx=False,fgXed=True)

#tq.pools_get4flst(qx,rbas0,baslst,fgInx=True,fgXed=True)

#

#---------

#2

qx=tq.bt_set(qx,tq.log_nor)

#

#3

qx.cb.addstrategy(tqedu.ma)

#

qx.bt_results= qx.cb.run()

#

#4.1

ds=tq.bt_anz(qx)

print('\n@ds\n',ds)

#4.2

qx.cb.plot()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值