使用大量内存将类定义为枚举

时间:2014-05-12 07:14:02

标签: python memory enums class-variables

我有数百个类,文件中有许多属性。我想让用户知道特定类可用的不同属性。我的主要目的是支持自动完成,否则用户很难知道不同类别中存在哪些属性。

我有一个constant.py文件,其类为

class abc:
  AA = "aa"
  BB = "bb"
  CC = "cc"

class def:
 DD ="dd"
 EE = "ee"
 FF = "ff"

类似地,我们有几百个属性的类。 这样做是因为用户可以将它用作abc.AA,def.DD,但这种方法消耗大量内存。 文件大约是11MB,但是当我导入即导入Constant时,它消耗大约50MB的内存。

有没有更好的方法来减少内存消耗?

2 个答案:

答案 0 :(得分:1)

这听起来并不像是对课程的好用。 collections.namedtuple可能是更好的选择,效率更高。

减少类版本所需内存的一种方法是使用__slots__

class ABC:
    __slots__=('aa', 'bb', 'cc)

答案 1 :(得分:0)

将常量分解为一个模块,并为每个文件分组相关的类。然后,用户可以导入他们需要的任何子集,而其他人不会浪费资源。