master
假设我有一个包含一组参数的对象的单个实例,然后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
,这样当任何slave
修改它时bound_value
,相应的属性master
就会更新。我完全知道 Python 不支持指针,但我想知道是否有一种很好的 Pythonic 方法来实现相同的目标?