这是我的模块的完整代码,称为util.py
:
import my_other_module
__IMPORTANT_OBJECT__ = None
def getImportantObject():
if __IMPORTANT_OBJECT__ is None:
__IMPORTANT_OBJECT__ = my_other_module.ImportantObject()
return __IMPORTANT_OBJECT__
我的理解是带有双下划线前缀的变量被认为是模块私有的。这里的想法是我想存储对重要对象的私有引用,并将其返回给通过该getImportantObject()
方法请求它的任何人。但我不希望在第一次调用此方法之前启动对象。
但是,当我运行代码时,出现以下错误:
File "/Users/Jon/dev/util.py", line 6, in getImportantObject
if __IMPORTANT_OBJECT__ is None:
UnboundLocalError: local variable '__IMPORTANT_OBJECT__' referenced before assignment
完成我在这里尝试做的事情的推荐方法是什么?