@snowmanbb

Как правильно обратиться к функции из обработчика нажатий инлайн-кнопок?

Бот запрашивает у пользователя нажатие кнопки. Когда юзер нажмет ее, обработчик должен либо придать переменной platform, находящуюся в коде без тела, подходящее значение (текст), либо обратиться к другой функции, передавая ему свою локальную переменную platform
def final_reg_step(message):
    global platform
    platform = message.text
    bot.send_message(message.chat.id, "Спасибо за регистрацию! Используйте /menu или /start для открытия Главного меню")

@bot.callback_query_handler(func=lambda call: True)
def callback_query(call):

elif call.data == "platform_reg_ios":
        #global platform
        platform_reg = "iOS"
        #process_final_step(platform)
        bot.send_message(call.message.chat.id, f'Установлена платформа: {platform_reg}.')
        final_reg_step(platform_reg, call.message)

Подскажите, пожалуйста, как лучше это сделать
  • Вопрос задан
  • 36 просмотров
Пригласить эксперта
Ответы на вопрос 1
@chemdev
global забудь это слово, кто вам эти гайды показывает с глобалом?
находящуюся в коде без тела,
Что это значит?
передавая ему свою локальную переменную platform
С трудом поняв, что ты имеешь ввиду, ответ:
В коде который ты представил всё вроде (вроде, потому что не видно весь код) должно работать как ты хочешь, но я бы рекомендовал написать обработчик кнопок одной функцией (без вызова дополнительных по типу final_reg_step), а потом уже приступать к рефакторингу. Разбивать код на функции просто ради разбития на функции - в этом нет смысла.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы