我需要解析客户给出的一些操作。action 是一个包含单词 action 的简单字符串:“load”、“start”、“pause”、....
我来自 C 世界,我是 Python 的新手。我需要一个 switch 语句,我使用 switcher.get() 函数完成了它(参见下面的代码)。
问题是这个切换器不能只识别字符串'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 上的 LED 矩阵。刺激正在运行...
- 帮助(工作):
- - - - - - - - 帮助 - - - - - - - -
可能的命令是:
插入所有可能的主题以订阅
- - - - - - - - 帮助 - - - - - - - -
如您所见,唯一不起作用的字符串是加载。问题是我不能用另一个词来改变“加载”这个词。