如何有效地检测 Python 3 中变量的变化?

Posted

技术标签:

【中文标题】如何有效地检测 Python 3 中变量的变化?【英文标题】:How to efficiently detect the change of a variable in Python 3? 【发布时间】:2019-07-08 17:07:38 【问题描述】:

我想知道如何有效地检查变量的值是否发生了变化,如果发生了变化,则返回该值。目前我有这样的事情:

while(True):
    if paramCHK == x:
        // do this
    elif paramCHK == y:
        // do that
        // and that
        // and that

上面实现的问题是,当我在elif子句中,参数变为x时,由于子句的执行时间太长,没有检测到。

我的想法是创建一个线程并以并行方式不断监视参数,当检测到更改时,将其报告给主函数:

myThread():
    if paramCHK.changed():
        notify_main() 

main():
   when notification:
       getParamValue()
       // do something depending the value

你会如何在 python 中解决这个问题?提前致谢

【问题讨论】:

你想要的是python中的异步编程/异步方法调用。我相信这个问题已经被问到并得到了回答:这个问题已经在这里得到了彻底的回答:***.com/questions/3221314/…,另一个带有工作示例的答案可以在这里找到:***.com/questions/1239035/… 谢谢,链接确实有用 【参考方案1】:
pastx=x
while True:
    if x != pastx:
        pastx=x
        alert()    
    pastx=x

这段代码可以在你的while循环开始,并且会检测x在最后一个循环中是否发生了变化,如果有,就会运行alert()函数

【讨论】:

以上是关于如何有效地检测 Python 3 中变量的变化?的主要内容,如果未能解决你的问题,请参考以下文章

Python 3.变量

python基础之数据类型与变量

python基础 1

如何更改内部类中的变量值[closed]

python入门基础

我的 XCode UI 测试如何检测到屏幕发生了变化?