Мне нужна помощь с переменными 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)