Почему модуль Python ведет себя как синглтон?

Я создаю словарь из удаленной базы данных как часть запуска моего приложения. Этот процесс требует большого количества операций ввода-вывода, поэтому я решил создать «одноэлементный» экземпляр этого словаря и просто вызывать его по мере необходимости в моем приложении.

Код выглядит следующим образом (в Dictionaries.py):

state_code_dict = None

def get_state_code_dict():
    global state_code_dict
    if state_code_dict == None:
        state_code_dict = generate_state_code_dict()
    return state_code_dict

Затем я импортирую и вызываю функцию get_state_code_dict(), где это необходимо. Я добавил оператор печати, чтобы проверить, был ли state_code_dictповторно инициализирован или использован повторно, и я обнаружил, что он используется повторно (что мне и нужно). Почему экземпляр state_code_dictвыживает после запуска приложения?

Редактировать

Я импортирую функцию get_state_code_dictв несколько файлов.

10
задан Tyler DeWitt 7 June 2012 в 17:32
поделиться