【发布时间】:2015-09-26 16:44:36
【问题描述】:
正如标题所示,我对构建使用许多全局变量的程序的最佳方式(也许是最 Pythonic 的方式)感兴趣。
首先,“很多”是指我的程序的每个模块都需要访问的大约 30 个变量(可能是字典、浮点数或字符串)。现在,似乎有两种方法可以做到这一点:
- 在单独的模块中定义“全局”变量
- 使用面向对象的方法
使用面向对象方法的优点是我可以初始化一些主类的许多实例,并可能在以后比较不同的值(例如某些分析的结果)。
我已经编写了一个程序,但基本上它分解为一个具有大约 30 个属性的类。虽然它工作正常,但我知道这是一种非常混乱的方式。
所以,基本上,如果我使用 OOP 方法,我可能需要将我的主类分解为几个子类,每个子类都存储特定的逻辑相关变量。
欢迎提出任何建议。
附:只是为了具体说明我正在尝试做的事情:我有一个 FEM 求解器,它需要存储结构信息、元素和节点数据、分析结果数据等。所以,我处理的数据类型最多其中以某种方式连接。
【问题讨论】:
-
我认为最pythonic的方法是不使用全局变量:-)
-
我不同意,大多数框架都实现了“settings.py”,例如 django,这不是一件坏事。我只会将它用于常量,而不是变量数据,从不。
-
@Apero。所以,事实上,您确实同意(假设您从不修改此类全局变量)。
-
确实,我们确实同意。应避免像害虫 IMO 一样避免全局对象
-
我还想强调一下,基本上我所有的“全局变量”都在被修改。唯一的常量是一些设置类型的变量。
标签: python