Вернуть все объекты из активной памяти в Python без использования сборщика мусора?

Я работал с большими наборами данных в некоторых программах с открытым исходным кодом, над которыми я работал (wxStocks на github). Я анализирую акции, и поскольку все акции загружаются в активную память при запуске программы, я не вижу причин использовать структуру базы данных.

Однако упорядочить файлы было непросто из-за необходимости использовать глобальный список переменных, в котором хранятся все акции, чтобы я мог легко вернуть акцию через строку тикера.

Я пришел с решением через сборщик мусора:

def return_stock_from_active_memory(ticker):
    ticker = ticker.upper()
    for obj in gc.get_objects():
        if type(obj) is Stock:
            if obj.symbol == ticker:
                return obj

Мне сообщили от более опытных программистов на Python, что я играю с огнем, даже импортируя сборщик мусора в первую очередь, и что это считается крайне дурным тоном, тем не менее, эта и другая написанная мной функция возвращает все стоковые объекты чрезвычайно полезны.

Является ли вышеуказанная функция приемлемым способом поиска объекта в активной памяти с помощью уникальной строки атрибута? Если нет, то как мне найти объекты при перемещении между различными файлами, не создавая бесконечный цикл, импортирующий переменные в каждый соответствующий файл.

0 ответов

Другие вопросы по тегам