我在命令处理程序中编码了代码,参数是if1然后是task1,if2然后是task2。我可以让它工作,只需键入"/命令1"或"/命令2",即可激活它。
是否可以立即在内联板按钮中添加"1"或"2"参数?
我的内联板代码现在是这样的。
我知道我的按钮现在会触发完全相同的代码,但不知道如何为第一个按钮设置参数"1",为第二个按钮设置"2"。
options.append(InlineKeyboardButton("command with argument 1", callback_data="1"))
options.append(InlineKeyboardButton("command with argument 2", callback_data="2"))
#######
def callback_query_handler(update, context):
input = update.callback_query.data
if input == '1':
self._command(update, context)
if input == '2':
self._command(update,context)
请注意,input
是一个内置函数,您不应该覆盖它。
现在我假设self._command
是用于处理command
的CommandHandler
的回调。首先(至少从您的代码片段来看)self
在callback_query_handler
函数中是未定义的。此外,update
是update.callback_query
的更新,而self._command
可能假设update.message is not None
-所以这必然会产生问题。我建议
- 从
self._command
中提取依赖于参数的逻辑到不同的函数中 - 从
self._command
和callback_query_handler
调用该函数
此函数可能应将参数作为参数。请注意,在您的相应代码段中,if
基本上毫无意义,因为在这两种情况下,您都对self._command
进行了相同的调用