Мне нужно проанализировать некоторые действия, данные клиентом.Действие представляет собой простую строку, содержащую слово action: «load», «start», «pause», ....
Я из мира C и я новичок в Python.Мне нужен оператор switch, и я сделал это с помощью функции switcher.get () (см. Код ниже).
Проблема в том, что этот переключатель не распознает только строку «load», остальные строки работаютправильно (см. пример вывода ниже).
Почему?
Чтобы правильно проанализировать проблему, я даю вам только случай переключателя, потому что остальная часть кода работает, и она бесполезна для этой части.Я пытаюсь напрямую передать строку 'load' функции, но она переходит непосредственно в зону исключения "Команда не найдена"
switcher={
'load': partial(load_wav,message_tocheck),
'start': partial(start_wav,message_tocheck),
'pause': partial(pause_wav,message_tocheck),
'resume': partial(resume_wav,message_tocheck),
'stop': partial(stop_wav,message_tocheck),
'reset': partial(reset_ch,message_tocheck),
'mqtt': partial(mqttrun),
'help': partial(help),
'zero':lambda:'lambda'
}
try:
func=switcher.get('load','INVALID')
return func()
except:
print('-------- COMMAND NOT FOUND --------')
ВЫХОД:
-------- КОМАНДА НЕ НАЙДЕНА --------
Пределы: A = 0, B = 8, C = 0, D = 8
Образец ожидания = 690
Матрица светодиода на канале 0. Запуск стимуляции ...
---------------- help ----------------
Возможные команды:
ВСТАВИТЬ ВСЕ ВОЗМОЖНЫЕ ТЕМЫ В ПОДПИСКУ
----------------help ----------------
Как видите, единственная строка, которая не работает, это load.Проблема в том, что я не могу заменить слово «загрузить» другим словом.