2017-02-27 99 views
2

对于那些没有完全进入我的项目的人来说,对于一个稍微长一点的解释来说很简单;我试图找到一种方法来检测Python 2.7中改变的全局变量。Python检测变化(全局)变量

我尝试发送更新,谁登记他们另一个设备。

减少交通堵塞和CPU负载,而不是选择了一个周期性的更新消息,我想的是只发送更新消息时,变量的变化,而现在我可能是累了,但我不知道我怎么能检测变化的变量。

是否有一个图书馆或什么我可以利用的?

谢谢!

+3

应该只有有限数量的地方改变变量。创建一个函数,对变量进行更改并同时发送更新。改变每个想要改变变量调用函数的地方。 *封装*是关键字在这里。 – deceze

+0

更改变量的名称也因此得到一个错误,通过新功能 – doctorlove

+0

这个答案anythign不会有一些线索:http://stackoverflow.com/questions/7540443/detecting-change-in-the-value- of-python-variables并提到一个通知包:http://download.gna.org/py-notify/reference/index.html – doctorlove

回答

0

你可以使用Redis的的发布/订阅功能,如果这种行为是在你的代码库的典型。 https://redis.io/topics/pubsub
每当变量发生变化时,您都会在频道上发布此事件。
例如,让我们打电话给variableUpdates
依赖于你的变量值的设备订阅频道variableUpdates
每次当你的变量的变化,你的渠道variableUpdates上发布此事件的时间。
发生这种情况时,听众会收到有关此事件的通知,读取新的变量值并在其自己的上下文中使用它。