为什么在全局变量中缓存或存储对象是错误的,实现这一目标的Python方法是什么?

时间:2019-03-09 15:20:45

标签: python caching

这不是关于为什么使用全局变量是错误的一般问题-该问题特定于以下情况。

我有一个名为module_c的模块,该模块调用网络API,并将数据存储到全局data变量中:

module_c

data = None

def load_alot_of_data():

    global data

    # This function loads alot of data and it takes a long time to do it.

    data = 1

def get_data():

    if data != None:

        return data

    else:

        load_alot_of_data()

        return data

该模块的用户可以通过调用get_data获得data对象的副本。但是,有人告诉我,以这种方式使用全局变量既是反模式的又是非Python的。在Python中存储或缓存此类对象的正确方法是什么?

我不使用类,是因为该类的实例永远不会超过一个,或者根本不会实例化-因此是模块。

0 个答案:

没有答案