これが遅延評価と呼ばれるかどうかは100%確信が持てませんが、Pythonでこれを行うことを望んでいます。
ユーザーが通過し、クラスのパラメーターとして使用されるいくつかのグローバル変数を作成する「セットアップウィザード」があります。
var = myClass(param1, param2)
グローバル変数 param1 および param2 が存在するまで評価しないでください。var0 = var.func
ただし、 myClass 内の関数であるを関連付けているため、var が存在する必要があります。その後、アプリケーションで var0 が呼び出され、func() が実行されます。
更新しました
これが私のコードの一部です:
class myClass:
def __init__(self, param1, param2):
self.param1 = param1
self.param2 = param2
#------------------------------------------------------------------------
def myFunction(self):
"""
Some work here using self.param1 and self.param2
"""
def myFunction2(self):
"""
Some work here using self.param1 and self.param2
"""
def myFunction3(self):
"""
Some work here using self.param1 and self.param2
"""
myInstance = myClass(PARAM1, PARAM2)
myDict = {}
myDict["key1"] = myInstance.myFunction
myDict["key2"] = myInstance.myFunction2
myDict["key3"] = myInstance.myFunction3
# and so on...
PARAM1
PARAM2
wxPython ウィザード内のアクションを通じて、ユーザーによってグローバル変数として設定されます。問題は、andがまだ存在しないmyInstance
ため、初期化時に評価できないことです。ただし、ディクショナリ キーは初期化時にさまざまな関数に関連付けられています。これらの関数は時間の経過とともに変化しないためです。PARAM1
PARAM2
アイデア?