首页 > 解决方案 > 常量模块,运行一次

问题描述

所以我正在构建一个常量模块,在 dict 中存储一些字符串:

class Labels():
     Table = {"value1" : "value1" , ...}
     
     Table_2 = {"value1" : "value1" , ...}

现在要改进我想自动检索常量的模块,以减少将来的维护。为此,我使用了一个名为 get_constants() 的方法,它返回一个带有常量的字典。所以模块将是:

class Labels():
 Table = get_constants("1")

 Table_2 = get_constants("2")

现在为了提高性能,我只希望这些方法运行一次,而不是每次我需要一个常量时。有什么建议吗?

标签: python

解决方案


class Labels:
    Test = get_constants("1")
    Test2 = get_constants("2")

已经做了你想要的。当您第一次导入模块时,该类Labels将被定义为定义模块的一部分,并且作为定义类的过程的一部分,get_constants将被调用并将其返回值保存为每个类属性的值。

如果多次导入模块,导入系统会检测到它已经存在(对它的引用保存在 中sys.module),因此不会再次定义它。

稍后,当您访问类属性时,dicts 将已经存在。


推荐阅读