gpt4 book ai didi

python - 如何在变量更改时触发另一个对象中的函数。 Python

转载 作者:太空狗 更新时间:2023-10-30 01:57:27 26 4
gpt4 key购买 nike

据我所知,这就像一个观察者模式。场景:一个 Center 对象保留了一个包含其所有客户端的列表(队列)。我正在使用 Twisted。

  1. 其中一个客户端对象更改中心对象中的变量或通知中心更改变量,
  2. 然后中心对象立即检测到变化
  3. 然后一旦检测到,中心对象调用队列中下一个对象的一些函数
  4. 客户端更改变量后,客户端对象将被消除。中心将处理下一个客户端对象。所以我想这些对象之间没有任何功能链。所以它与观察者模式有点不同。 (如何解决这个问题?如果我错了请纠正我。)

以下代码仅供演示:

    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()

最佳答案

va 设为属性。

class Center():
def __init__(self):
self.queue = None
self._va = 0

@property
def va(self):
return self._va

@va.setter
def va(self, value):
self._va = value
self.whenChanged()

def whenChanged(self):
next = self.queue.dequeue()
next.function()

关于python - 如何在变量更改时触发另一个对象中的函数。 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39730037/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com