python telegram.ext commandhandler不使用命令列表

时间:2017-12-22 08:06:22

标签: python python-3.x

我想使用命令处理程序的命令列表,但永远不会调用相应的函数。

getabList = ["getab"]
for x in range(0, 31):
    getabList.append("getab%03d" % (x,))
dp.add_handler(CommandHandler(getabList, self.getab))

仅在定义单个命令时,它才会调用self.getab

这个想法是在发送电报消息时有一个已经在命令本身中包含参数的命令列表,因为我只需单击消息中的命令而不是手动输入参数。例如/ getab030 vs / getab 030 或者在电报消息中有一种方法可以制作" / getab 030"一条链接? 感谢

1 个答案:

答案 0 :(得分:2)

这是向CommandHandler

添加命令的正确方法

CommandHandler('command string', command_to_execute)

或者您的例子

CommandHandler('getab', self.getab)

第一个参数是将在bot中触发命令的字符串,第二个参数是要执行的函数。您还可以使用第三个参数 - pass_args=True让机器人知道此命令后跟参数,并在函数中处理它们。

如果你不想使用pass_args,你可以让用户调用像/getab这样的通用命令,并让机器人用一个选项键盘提示用户,点击后,使用用户选择的值执行适当的命令。