在 pyTelegramBotAPI 中传递变量

问题描述 投票:0回答:1

需要将变量“start”作为命名参数传递给register_callback_query_handler函数

这是我的代码:

bot = telebot.TeleBot(BOT_TOKEN)

start = "start"


@bot.message_handler(commands=['start'])
def start(call):
 menu = telebot.types.InlineKeyboardMarkup()
 menu.add(telebot.types.InlineKeyboardButton(text="button", callback_data ='calculator'))

 msg = bot.send_message(call.from_user.id, text="text", reply_markup=menu)


bot.register_callback_query_handler(calculator, func=lambda call: call.data == 'calculator', pass_bot=True, start=start)


def calculator(call, bot, **kwargs):
 print(kwargs)

当我按下按钮时,没有任何反应。不会抛出任何错误。但是,如果我不将命名参数(start)传递给register_callback_query_handler函数,那么函数“calculator”将被正常调用。

我不知道问题是什么。

telebot
1个回答
0
投票

start
函数不需要传递
register_callback_query_handler
参数:请参阅asyncregular版本的文档。

该函数可能将参数视为自定义过滤器并过滤掉您的按钮按下操作。如果它按照您的意愿工作而没有

start
参数 - 不要通过它。如果您想要其他功能,请澄清问题。

祝你有美好的一天!

© www.soinside.com 2019 - 2024. All rights reserved.