Адам, помни это в Python, когда говоришь:
a = read_dict_from_file()
b = a
... вы на самом деле не копируете a
, и, таким образом, используя больше памяти, вы просто делаете b
другую ссылку на тот же объект.
Таким образом, в принципе любые предлагаемых вами решений будут намного лучше с точки зрения использования памяти. В основном, прочитайте в словаре один раз , а затем повесьте ссылку на это. Делаете ли вы это с помощью глобальной переменной или передаете ее каждому экземпляру или что-то еще, вы будете ссылаться на один и тот же объект, а не дублировать его.
Какой из них наиболее питоновский? Это целая «банка червей», но вот что я бы сделал лично:
def main(args):
run_initialization_stuff()
dictionary = read_dictionary_from_file()
solvers = [ Solver(class=x, dictionary=dictionary) for x in len(number_of_solvers) ]
НТН.