我有一个递归函数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都需要更新。
希望,你知道我在说什么,我一整天都在盯着它......
干杯,伙计们!
答案 0 :(得分:0)
也许在类中包含simulation()和raise_alarm()并使用对象参数?这将为您想要分享的值提供一个很好的共享范围。