Я надеялся, что кто-нибудь может дать мне совет, как улучшить мой код, чтобы мне не нужно было использовать глобальные переменные. (Я немного упростил / сократил код ниже, чтобы сосредоточиться на проблеме)
Код работает следующим образом: есть два процесса (панорамирование и наклон), оба из них используют функцию pid_process, которая будет вычислять номер ошибки. если оба состояния ошибки панорамирования и наклона ниже 10 (оба верны), я хочу что-то сделать. интересно, может ли кто-нибудь помочь мне написать лучший код.
tilt_error = False
pan_error = False
def checkErrorMargin(action, error):
global tilt_error
global pan_error
if 'tilt' in action:
if error < 10:
tilt_error = True
else:
tilt_error = False
return tilt_error
else:
if error < 10:
pan_error = True
else:
pan_error = False
return pan_error
def pid_process(action, error):
global tilt_error
global pan_error
# in original code - error number will be calculated here
if 'tilt' in action:
tilt_error = checkErrorMargin(action, error)
else:
pan_error = checkErrorMargin(action, error)
if tilt_error and pan_error:
print("do something")
for x in range(0,3):
pid_process("pan", x+8)
pid_process("tilt", x+1)