master假设我有一个包含一组参数的对象的单个实例,然后slave是应该能够访问和修改主属性的多个对象实例。在我的特定情况下,从属是wxPythonGUI 对象,其中可能有多个 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 方法来实现相同的目标?