Python:递归函数和存储变量

时间:2017-01-31 15:54:37

标签: python recursion

我有一个递归函数simulation(),每分钟左右从网上取一些值(值是计算几个动作的结果)。函数内部是一个嵌套函数raise_alarm,也是递归函数,它使用simulation()中的值作为参数并对它们进行分析。我需要能够检测每次运行后是否有值的变化。

我一直没有使用全局变量(对它们并不太了解),因为我一直在阅读,它们应该是最后的选择。那么有没有什么方法可以在嵌套函数内部或外部存储一个值,以便能够在它到达后将其与更新状态进行比较?

以下是简化代码:

    def simulation():
        #generates the values_a, _b...
       def raise_alarm(value_a, value_b,...):
           if value_a_old < value_a:    ###where do I place value_a_old?)
               #do stuff  
           else: pass          
           if value_b_alt < value_b:
               #do stuff
           else: pass            
           if value_a > value_b+2 or value_b > value_a+2:
               #do stuff
           else:
               #do other stuff
        while True:
            print' stuff '
            time.sleep(2)
            raise_alarm(value_a, value_b)
    simulation()

因此,详细地说,value_a,_b ......正在不断地从网上被删除。每次value_b平均增长3次,value_b也会增长1.我需要一个在我的raise_alarm函数内部的变量,它反映了value_a,但每次value_b更改时都会设置回0。 为此,我想将value_a存储在存储变量value_a_old中,因此我可以将新传入的value_a与value_a_old进行比较。在课程期间,value_a和value_a_old都需要更新。

希望,你知道我在说什么,我一整天都在盯着它......

干杯,伙计们!

1 个答案:

答案 0 :(得分:0)

也许在类中包含simulation()和raise_alarm()并使用对象参数?这将为您想要分享的值提供一个很好的共享范围。