Python微信订餐小程序课程视频
https://edu.csdn.net/course/detail/36074
Python实战量化交易理财系统
https://edu.csdn.net/course/detail/35475
首先,请和我一起高呼——“treevalue——通用树形结构建模工具 + 极简树形结构编程模型”。
咳咳,好久没更新了,这一次是真的好久不见,甚是想念。在之前的三期中,关于 treevalue
的核心特性等内容已经基本完成了讲述。因此本篇作为该系列的终章,将尝试用更高一层的视角来分析 treevalue
,以求进一步了解其核心思想与应用模式,并通过干货数据与实例展示来展现其真实能力。
闲话少叙,让我们开始吧!如果还没了解过 treevalue
的小伙伴们可以先去读一下之前的几篇文章:
整体设计
概念与架构
想要完整地了解 treevalue
,首先还是需要从整体架构上来看看,如下图所示。
(treevalue的整体架构)
显而易见的一点, treevalue
是基于Python构建的,并且处于运算性能上的考虑,因此也大量采用了Cython来实现,该工具可以用一种介于Python和C/C++之间的语法进行编码,并以C/C++的形式编译为静态库,通过绕开一系列不必要的动态机制等方式来实现明显的加速。
在 treevalue
中,最底层的为 TreeStorage
,为数据层,主要对树状数据结构进行管理,并对上层提供最基本的接口。建立在之上的 TreeValue
为最关键的一个类,基于数据层进行了基本的封装,能实现 treevalue
的基本特性且具备进一步扩展的能力。树化(treelize)在之前的几篇文章中有过介绍,其作用在于将现有库的函数和类进行树化的扩展,使 treevalue
的特性可以被快速应用至现有工具上。工具部分(utilities)即为基于 TreeValue
构建的一些简单工具,支持了基本的树操作、函数式运算等功能。另一个极为重要的部分即为 FastTreeValue
类,其为 TreeValue
的子类,包含了大部分的运算符,并可以实现**“装载即用”,只需要将现有的对象装入**FastTreeValue
即可批量访问其属性、批量调用其方法,因此 FastTreeValue
被最为广泛的使用。这里需要注意的是, treevalue
并未针对任何一个特定的现有库进行特殊化设计,而是通过泛用型设计,让诸如PyTorch、Numpy、Tensorflow在内的几乎全部接口均可以被快速扩展到树运算上。
总的来说,基于 treevalue