繁体   English   中英

使main()中加载的数据成为Python中函数的隐式参数的最佳方法

[英]Best way to make data loaded in main() an implicit argument of a function in Python

我的主要功能是从用户提供的csv(以及其他几个数据对象)中加载一个较大的数据帧,然后实例化一个对象,该对象形成一堆方程式,这是数学编程问题的一部分。 许多方程式的组件都是通过调用我在utils文件中定义的大约5个辅助函数返回的(最重要的是,在存储优化问题的类之外)。 这些辅助函数引用了main中加载的数据,但是为了可读性,我希望它们的调用以仅通过时间索引t(而不是数据帧)进行参数化的方式显示在方程式中。 是实现此目标的最佳方法,是在utils.py中使用数据作为显式参数定义这些函数,然后在生成方程式使其隐式之前使用functools.partial?

这对我来说似乎是一种冗长的方法,但是其他选择似乎更糟:在main内部定义辅助函数,或者放弃主函数加载数据的想法,这基本上意味着放弃拥有main函数。 可能还有令人困惑的循环进口。

我最终提出了我建议的答案:

使用数据作为显式参数在utils.py中定义这些函数,然后在生成方程式使其隐式之前使用functools.partial

而且该代码库已经投入生产一年以上,对我来说似乎足够合理。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM