首页 > 解决方案 > Python - 如何在不使用太多内存的情况下存储许多类?

问题描述

假设我有一个类来存储一些不同类型的值,并且我得到了很多这些类。如何在不占用太多内存的情况下整齐地存储它们?或者有没有办法不使用这个愚蠢的课程?

class item:
    id = int()
    time = float()
    flag = int()
    description =str()

    def __init__(self, id, time, flag, description):
        self.id = id
        self.time = time
        self.flag = flag
        self.description = description


dataBaseSize = 134217728

dataList = list()

for i in range(dataBaseSize):
    new = item(i, 0, 0, "i")
    dataList.append(new)

这样做会导致内存爆炸。那么如何在 Python 中优化呢?

标签: pythonpython-3.x

解决方案


你可以使用__slots__ 技巧

内存使用量会有显着差异(40% 到 50%)。

class MyClass(object):
    __slots__ = ['name', 'identifier']
    def __init__(self, name, identifier):
        self.name = name
        self.identifier = identifier

推荐阅读