master
一連のパラメーターを含むオブジェクトのインスタンスが 1 つあり、次にslave
マスターの属性にアクセスして変更できるオブジェクトの複数のインスタンスがあるとします。私の特定のケースでは、スレーブはwxPython
GUI オブジェクトであり、同じパラメーターを変更できる複数の GUI コントロールが存在する可能性があります。
master.parameter
スレーブがいつ更新したいかを明示的に参照する場合、明らかにこれは簡単です。ただし、各スレーブオブジェクトからのイベントを処理するためにさまざまな関数を作成する必要があるため、これを行う必要はありません。
私は現在、プロパティごとにmaster
個別のメソッドget_value
とメソッドを使用して、次のようなことを行っています。set_value
class Master(object):
def __init__(self):
self.value = 0
def get_value(self):
return self.value
def set_value(self,value):
self.value = value
class Slave(object):
def __init__(self,getfunc,setfunc):
self.getfunc = getfunc
self.setfunc = setfunc
def update(self,value):
self.setfunc(value)
def run():
master = Master()
slave = Slave(master.get_value,master.set_value)
print "\nMaster: %i\nSlave: %i" %(master.value,slave.getfunc())
slave.update(1)
print "\nMaster: %i\nSlave: %i" %(master.value,slave.getfunc())
if __name__ == "__main__":
run()
私が本当にできるようにしたいのは、のようなものをslave.bound_value
設定することmaster.value
です. Python がポインターをサポートしていないことは十分承知していますが、同じことを実現する Python の優れた方法があるかどうか疑問に思っていました。slave
bound_value
master