python - 常量模块,运行一次
问题描述
所以我正在构建一个常量模块,在 dict 中存储一些字符串:
class Labels():
Table = {"value1" : "value1" , ...}
Table_2 = {"value1" : "value1" , ...}
现在要改进我想自动检索常量的模块,以减少将来的维护。为此,我使用了一个名为 get_constants() 的方法,它返回一个带有常量的字典。所以模块将是:
class Labels():
Table = get_constants("1")
Table_2 = get_constants("2")
现在为了提高性能,我只希望这些方法运行一次,而不是每次我需要一个常量时。有什么建议吗?
解决方案
class Labels:
Test = get_constants("1")
Test2 = get_constants("2")
已经做了你想要的。当您第一次导入模块时,该类Labels
将被定义为定义模块的一部分,并且作为定义类的过程的一部分,get_constants
将被调用并将其返回值保存为每个类属性的值。
如果多次导入模块,导入系统会检测到它已经存在(对它的引用保存在 中sys.module
),因此不会再次定义它。
稍后,当您访问类属性时,dict
s 将已经存在。
推荐阅读
- sql - 获取唯一的当前用户,具体取决于他们使用的在线平台
- verilog - Verilog 全局变量用法
- python - 将 numpy 数组附加到类列表会改变类列表的形状
- apache-kafka - 如何在 ConsumerSeekCallback 上查找之前分配分区?
- angular - 如何通过医生更改属性类型
- javascript - 如何从具有文本值的表中查找下一个类
- r - 如何修复此错误:在合成器包中未找到作为字符变量的变量?
- r - R - 逗号分隔的列表之间是否至少有一个匹配项?
- javascript - 使用 JavaScript 提取字符串中间的 div 标签
- mongodb - 如何修复 Mac OS 11 上的“mongod”错误?