姬長信(Redy)

为什么python模块就像一个单例?


我作为应用程序运行的一部分,从远程数据库创建一个字典.这个过程非常I / O很重,所以我决定创建这个字典的“单例”实例,并在我的应用程序中调用它.

代码看起来像(在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()函数.我添加了一个print语句来检查state_code_dict是否正在重新初始化或重用,我发现它正在被重用(这是我想要的功能).为什么state_code_dict的实例在应用程序运行中幸存?

编辑

我在多个文件中导入get_state_code_dict函数.