我有一个在模块级别称为fsdata
字典(像一个全局变量)。延迟加载字典
内容从文件系统读取。它应该在首次访问时加载一次数据。到目前为止,它在导入模块期间加载数据。这应该被优化。
如果没有代码访问fsdata
,内容不应该被从文件系统(节省CPU/IO)读取。
加载应该发生,如果你检查布尔值,太:
if mymodule.fsdata:
... do_something()
更新:有些代码已经使用mymodule.fsdata。我不想改变其他地方。它应该是可变的,而不是一个函数。而且“mymodule”需要成为一个模块,因为它已经用于很多代码中。
问题是什么? –
我从'dict'派生出来,在新类中进行延迟加载并重写'_bool __()'方法,这样如果在if中使用它,它也会被加载。 – phg
它是否具有变量/属性(而不是函数)? – georg