【问题标题】:Python detect changing (global) variablePython检测变化的(全局)变量
【发布时间】:2017-02-27 18:55:21
【问题描述】:

对于像我这样没有完全参与我的项目的人来说,做一个有点长的解释相当简单;我正在尝试找到一种方法来检测 Python 2.7 中更改的全局变量。

我正在尝试将更新发送到另一台注册它们的设备。

为了减少流量和 CPU 负载,我没有选择定期更新消息,而是考虑只在变量更改时发送更新消息,我现在可能很累,但我不知道如何检测一个变化的变量。

是否有图书馆或其他我可以利用的东西?

谢谢!

【问题讨论】:

  • 应该只有有限数量的地方可以改变变量。创建一个对变量进行更改并同时发送更新的函数。让每个想要更改变量的地方都调用该函数。 封装是这里的关键词。
  • 也要更改变量的名称,这样你就会得到一个错误,因为任何东西都没有通过新函数
  • 这个答案有一些线索:stackoverflow.com/questions/7540443/… 并提到了一个通知包:download.gna.org/py-notify/reference/index.html

标签: python


【解决方案1】:

如果这种行为在您的代码库中很常见,您可以使用 Redis 的 Pub/Sub 功能。 https://redis.io/topics/pubsub
每次您的变量更改时,您都会在频道上发布此事件。
例如,让我们调用频道 variableUpdates
依赖于您的变量值的设备订阅频道 variableUpdates
每次当您的变量更改时,您都会在频道 variableUpdates 上发布此事件。
发生这种情况时,您的侦听器会收到有关此事件的通知,读取新变量值并在自己的上下文中使用它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多