我有数百个类,文件中有许多属性。我想让用户知道特定类可用的不同属性。我的主要目的是支持自动完成,否则用户很难知道不同类别中存在哪些属性。
我有一个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的内存。
有没有更好的方法来减少内存消耗?
答案 0 :(得分:1)
这听起来并不像是对课程的好用。 collections.namedtuple
可能是更好的选择,效率更高。
减少类版本所需内存的一种方法是使用__slots__
。
class ABC:
__slots__=('aa', 'bb', 'cc)
答案 1 :(得分:0)
将常量分解为一个模块,并为每个文件分组相关的类。然后,用户可以导入他们需要的任何子集,而其他人不会浪费资源。