无法从 if 语句中更改变量状态



我不能更改 if 语句之外的变量值,该 if 语句中的代码。

#import lines here
alarm_active=False
alarm_on=False
def handle(msg):
global alarm_active
global alarm_on
#other lines of code
while 1:
print 'while works'
if alarm_active==True:
print 'alarm works'
foo = subprocess.check_output("python one_sensor_alarm.py", shell=True)
print foo
if foo == 'chiuso':
print "intrusion"
alarm_on=True
alarm_active=False
time.sleep(1)

两个变量alarm_activealarm_onhandle(msg)方法中声明为全局变量。 当foo == 'chiuso'时,其中的代码 if 不被执行。 是使用全局变量的问题吗?

根据您的
  • 代码片段,alarm_active永远不会被true
  • 如果我们假设我们设置了alarm_active=true那么如果python one_sensor_alarm.py在字符串末尾返回nif foo == "chiuso":将不起作用。所以试试这个代码:
import subprocess
import time
alarm_active = True
alarm_on = False

def handle(msg):
global alarm_active
global alarm_on
# other lines of code

while 1:
print('while works')
if alarm_active is True:
print('alarm works')
foo = subprocess.check_output("python one_sensor_alarm.py", shell=True)
print("foo %s" % repr(foo))
if foo.strip() == "chiuso":
print("intrusion")
alarm_on = True
alarm_active = False
time.sleep(1)

相关内容

  • 没有找到相关文章

最新更新