首页 > 解决方案 > 在共享状态的同时编写函数式 Python 代码

问题描述

我正在用 Python 为 ETL 管道编写代码。到目前为止,每个阶段(提取、转换、加载)都有自己的 .py 文件,它们将相互传递数据。在每个文件中,我试图弄清楚如何最好地为在文件中只运行一次的进程组织我的代码。

这是我的问题的一个例子。在 transform.py 中,有加载表、设置数据类型、创建新列和删除行等子阶段。我想组织这些阶段,以便主代码可以只有几行,其中每一行调用每个子阶段。

但是,这些子阶段中的每一个都共享主要数据帧之外的变量,因此我开始考虑组织代码的方法,而不是向每个函数传递大量特殊参数。一些谷歌搜索和思考导致了制作变压器类的解决方案。

我一直认为类具有千篇一律的比喻:当您需要多次重用相同的模式时实现的东西。相比之下,我在做函数式编程;我只会运行一次变压器,它的每个子阶段将只运行一次并且以相同的顺序运行。所以类似乎是解决不同类型问题的方法。但它们是迄今为止我见过的最简单的东西,可以在函数之间共享状态。您认为课程仍然适合吗?

感谢您阅读并考虑我的问题!期待一些讨论。

标签: pythonclassoopfunctional-programming

解决方案


推荐阅读