避免使用全局变量,但还要避免过多的函数参数(Python)

Lag*_*aer 4 python arguments global-variables parameter-passing

假设我有一个python模块,该模块具有很多相互依赖,相互处理结果的功能。有很多凝聚力。

这意味着我将来回传递很多论点。要么,要么我将使用全局变量。

有什么最佳实践来应对这种情况?我想到的是用字典替换那些参数。但是,我不一定喜欢如何将函数签名更改为不太具有表现力的东西。或者我可以将所有内容包装到一个类中。但这感觉就像我在欺骗并使用“伪”全局变量吗?

我专门询问如何在Python中处理此问题,但我知道其中许多内容也适用于其他语言。

我没有特定的代码示例,这只是我在考虑此问题时想到的。

例如:您有一个计算某些内容的函数。在此过程中,需要计算很多辅助材料。您的处理例程需要访问此辅助内容,并且您不希望仅重新计算它。

Rob*_*rtB 5

这是一个非常笼统的问题,因此很难具体说明。您似乎要描述的是一堆共享数据的相互关联的功能。该模式通常实现为对象。

不用一堆函数,而是用许多方法创建一个类。对于公共数据,请使用属性。设置属性,然后调用方法。这些方法可以引用属性,而无需将它们显式传递为参数。