我需要一些关于python变量的帮助。我有一个草图,它将变量发送到一个名为roomControl的函数。如果在这个功能期间,状态与以前有所不同,那么我希望它做些什么。目前它应该打印出变量值。在
我得到一个错误,状态变量没有被分配,我相信这是由于它被设置在函数之外。但是如果我在函数中设置变量,那么这将覆盖这些变量的函数控制。(希望这有道理)
我的脚本如下,但基本上,如果状态改变,然后打印出来的东西是我要实现的import MySQLdb
status = 0
previousStatus = 0
connSolar = MySQLdb.connect("localhost", "######", "#######", "######")
cursSolar = connSolar.cursor()
def roomControl(name, demand, thermostat, roomTemp):
if demand == 1 and thermostat > roomTemp:
status = 1
if demand == 1 and thermostat < roomTemp:
status = 0
if demand == 0:
status = 0
if (status == 1 and previousStatus == 0):
print("Room: %s, Heating demand = %s, Thermostate = %s, Room Temp = %s, Status = %s") % (name, demand, thermostat, roomTemp, status)
print("")
previousStatus = status
return (status)
while 1:
Ntemp = 25
try:
cursSolar.execute ("SELECT * FROM roomHeatingControl")
connSolar.commit()
for reading in cursSolar.fetchall():
Nthermostat = reading[6]
NSW = reading[7]
except (MySQLdb.Error, MySQLdb.Warning) as e:
print (e)
NPy_status = roomControl('Niamh', NSW, Nthermostat, Ntemp)