これが私のモジュールの完全なコードで、次のように呼ばれ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
私がここでやろうとしていることを達成するための推奨される方法は何ですか?