Вернуть все объекты из активной памяти в 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, что я играю с огнем, даже импортируя сборщик мусора в первую очередь, и что это считается крайне дурным тоном, тем не менее, эта и другая написанная мной функция возвращает все стоковые объекты чрезвычайно полезны.
Является ли вышеуказанная функция приемлемым способом поиска объекта в активной памяти с помощью уникальной строки атрибута? Если нет, то как мне найти объекты при перемещении между различными файлами, не создавая бесконечный цикл, импортирующий переменные в каждый соответствующий файл.