【发布时间】:2010-01-24 22:29:45
【问题描述】:
甚至不确定模块级别是否正确,但是...
我有一个 Pylons 项目,在模型组件中我有一个全局变量 doc,位于 __init__.py 中,我想从不同的 Query 对象中使用它。 (doc 是我用作假数据库的 XML 文件的文档句柄。)我的问题是,__init__.py 的范围何时结束?目前我没有使用 doc.unlink() 释放文档,我不确定该放在哪里。
我正在考虑的替代设计涉及使消费对象(查询)具有此文档的类级变量(即使其成为单例)。但似乎我的 Query 对象的生命周期使得 doc 总是被重新分配一个新的 Document 句柄。
class Query(object):
doc = None
def __init__(self, content=None):
self.content = content
if self.doc == None:
self.doc = parse(os.path.join(config['app_conf']['xmldb'], "sample_search_result.xml"))
我知道,因为 Document 中元素的地址一直在变化。
有人想帮助一个菜鸟吗?
【问题讨论】:
标签: python object scope singleton pylons