Вставить функцию при нажатии кнопки(telebot)
Как вызывать функцию при нажатии кнопки в telebot?
После того как нажимается "figure" необходимо, чтобы бот вызывал функцию kr() kr() состоит из ввода переменных, вычисления по формуле с этими переменными и выводом результата.
# Обработчик нажатий на кнопки
@bot.callback_query_handler(func=lambda call: True)
def callback_worker(call):
# Если нажали на одну из кнопок — просим ввести переменные
if call.data == "figure":
@bot.callback_query_handler(func=lambda call: True)
def kr(message):
bot.send_message(message.from_user.id, "Найдем площадь круга:")
Ответы (1 шт):
Автор решения: Violet
→ Ссылка
# Обработчик нажатий на кнопки
@bot.callback_query_handler(func=lambda call: True)
def callback_worker(call):
# Если нажали на одну из кнопок — просим ввести переменные
if call.data == "figure":
a = kr(call.message) # если kr() возвращает площадь круга
bot.send_message(call.message.from_user.id, "Найдем площадь круга:{}".format(a))
# bot.send_message(call.message.from_user.id, "Найдем площадь круга:{}".format(kr(call.message)))
- не требуется указывать ещё один
handler - для вызова функции используйте её имя и аргумент
some(args) - если функция что-то возвращает,
return, либо определяйте в переменную, либо сразу вызывайте функцию.