Python:递归函数和存储变量



我有一个递归函数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_arm-函数中的一个变量来镜像value_a,但每次value_b更改时都会将其设置回0。为此,我想将value_a存储在存储变量value_a_old中,这样我就可以将新传入的value_a与value_a_old。value_a和value_a_old都需要在课程中更新。

希望,你知道我在说什么,我已经盯着它看了一整天…

干杯,伙计们!

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

最新更新