具有许多全局变量的程序的结构

时间:2015-09-26 16:44:37

标签: python

正如标题所示,我对构建一个使用许多全局变量的程序的最佳(也许是最Pythonic方式)感兴趣。

首先,通过“many”,我的意思是我的程序的每个模块都需要访问的大约30个变量(可能是字典,浮点数或字符串)。现在,似乎有两种方法可以做到这一点:

  • 在单独的模块中定义“全局”变量
  • 使用面向对象的方法

使用面向对象方法的优点是我可以初始化一些主类的许多实例,并且可能稍后比较不同的值(例如某些分析的结果)。

我已经编写了一个程序,但基本上它分解为一个具有大约30个左右属性的类。虽然它工作正常,但我知道这是一个非常混乱的方法。

所以,基本上,我是使用OOP方法,我可能需要将我的主类分解为几个子类,每个子类都存储特定的逻辑相关变量。

欢迎任何建议。

P.S。只是要具体说明我要做的事情:我有一个FEM求解器需要存储结构信息,元素和节点数据,分析结果数据等。所以,我正在处理大多数数据类型其中有某种联系方式。

1 个答案:

答案 0 :(得分:2)

不幸的是,正如评论中暗示的那样,没有" Pythonic"这样做的方式。拥有大量全局常量就可以了 - 很多程序和库都可以做到这一点。但在评论中,您已指定所有全局变量都被修改。

您需要将程序的架构带回绘图板。重新思考程序实体(函数,类,模块等)之间的关系。 是一种更好的组织方式。

顺便说一句,听起来你似乎已经接近使用God Object Antipattern了。使用this SO question中的一些建议来重构你的大型课程,这个课程在你的课程中占有一席之地。