Насколько я знаю, это похоже на шаблон наблюдателя. Сценарий: Объект Center сохраняет список (очередь) всех своих клиентов. Я использую Twisted.как вызвать функцию в другом объекте при изменении переменной. Python
- Один из объектов клиента изменяет переменную в центре объекта или уведомить центр, чтобы изменить переменную,
- , а затем центральный объект обнаруживает изменение немедленно;
- то, как только обнаружения, центральный объект вызвать некоторую функцию следующего объекта в очереди
- После того, как клиент изменил переменную, клиентский объект будет устранены. Центр позаботится о следующем объекте клиента. Поэтому я предполагаю, что между этими объектами нет никакой функциональной цепочки. Так что это немного отличается от шаблона наблюдателя. (Как решить эту проблему Поправьте меня, если я ошибаюсь?.)
следующий код просто только демо:
class client():
def change(self):
self.center.va = 1
def inqueue(self):
self.center.queue.enqueue(self)
def function(self):
pass
class center():
def __init__(self):
self.queue = None
self.va = 0
#### When the self.va changes, this func will be invoked
def whenChanged(self):
next = self.queue.dequeue()
next.function()
Возможно определить свойство [setter/getter] (http://stackoverflow.com/a/2627034/6779606). – PyNoob