Loading a file only once into an object and being able to access it from other modules
Remy Blank
remy.blank_asps at pobox.com
Tue Dec 7 10:50:27 EST 2004
Philippe C. Martin wrote:
> I have a very large XML file that I load into dictionnaries defined in a class
> located in a module that is imported in many places.
>
> Since the loading process is very slow, I would like the file not to be loaded
> on import or class instantiation, but only once (on first import or class
> instantiation).
What about:
class MyClass:
hugeDict = loadHugeDic("filename.xml")
def __init__(self):
"""hugeDict can be accessed by self.hugeDict"""
...
The function loadHugeDict() will only be called once, when importing the
module for the first time. If you wanted to load it on the first
*instantiation*, you could do:
class MyClass:
hugeDict = None
def __init__(self):
if MyClass.hugeDict is None:
MyClass.hugeDict = loadHugeDic("filename.xml")
...
HTH.
-- Remy
Remove underscore and suffix in reply address for a timely response.
More information about the Python-list
mailing list