我正在使用discord.py api对机器人进行编码,试图模拟针对机器人的不同命令的开关/情况
我在线阅读了可以使用$stmt->execute
模拟开关/情况的信息,但是在特定值上,它运行的是每个功能,而不是适当的功能
switcher = { *some value* : *function* }
我调用async def command_switcher(argument, message, parameters):
switcher= {
">autovc": await autovc_command_switcher(parameters[1], message,
parameters) if (len(parameters) > 1) else await
autovc_invalid(message),
">help": await default_help(message),
">vcgroup": await autovc_invalid(message)
}
return switcher.get(argument, "Invalid")
并传递一个参数,如果参数为command_switcher
,则它仅运行">help"
函数,但是如果我传递default_help()
它运行所有3个功能
编辑:同样,如果我切换条目的顺序,它仍然具有相同的结果:">autovc"
仍然只运行自身,而">help"
仍然运行所有3个
编辑2 :已解决,感谢您的评论,同时尝试根据建议创建适当的MCVE,并看到评论表明dict值是函数对象,我认为我错误地调用了函数,而不是引用函数对象本身。我的async / await也有一些问题,但是将我链接到https://xinhuang.github.io/posts/2017-07-31-common-mistakes-using-python3-asyncio.html的评论也为我清除了此问题