Cтолкнулся с такой проблемой что бот не реагирует на функцию but1_2?

Доброго времени суток, столкнулся с такой проблемой что бот не реагирует на функцию but1_2 ? Бота пишу первый раз и много чего не знаю, поэтому не судите строго)
.......
def func_but(message):
    bot.send_message(message.chat.id, 'Кол-во голов команды ' + kom1 + ' в прошлой игре?')
    bot.register_next_step_handler(message, but1_1)

def but1_1(message):
    global i
    global ch
    i = int(message.text)
   ch = ch + i
    a.insert(0, i)
    markup = types.InlineKeyboardMarkup()
    key_yes = types.InlineKeyboardButton(text='Да', callback_data='yes')
    markup.add(key_yes)
    key_no = types.InlineKeyboardButton(text='Нет', callback_data='no')
    markup.add(key_no)
    bot.send_message(message.chat.id, 'Хочешь ввести результат ещё одной игры?', reply_markup=markup)

@bot.callback_query_handler(func=lambda call: True)
def but1_2(call):
     if call.data == 'yes':
        bot.register_next_step_handler(call.message, func_but)   #отсюда бот не возвращается на func_but
     elif call.data == 'no':
        bot.register_next_step_handler(call.message, result_1)    #и отсюда бот не идёт на след. функцию result1

def result_1(message):
    # вычисления
    # вывод вычеслений
bot.polling()
  • Вопрос задан
  • 176 просмотров
Пригласить эксперта
Ответы на вопрос 2
yupiter7575
@yupiter7575
Python программист
По коду мало чего понятно, потому что нет ни подсветки синтаксиса, ни отступов. Могу предположить что вы не добавили декоратор
Ответ написан
Чё тут думать?

Сначала объявляем функцию
def func():
    #тело функции


а потом вызываемfunc()

В твоём случае
def but1_1(message):
    global i
    global ch
    i = int(message.text)
   ch = ch + i
    a.insert(0, i)
    markup = types.InlineKeyboardMarkup()
    key_yes = types.InlineKeyboardButton(text='Да', callback_data='yes')
    markup.add(key_yes)
    key_no = types.InlineKeyboardButton(text='Нет', callback_data='no')
    markup.add(key_no)
    bot.send_message(message.chat.id, 'Хочешь ввести результат ещё одной игры?', reply_markup=markup)

def func_but(message):
    bot.send_message(message.chat.id, 'Кол-во голов команды ' + kom1 + ' в прошлой игре?')
    bot.register_next_step_handler(message, but1_1)

@bot.callback_query_handler(func=lambda call: True)
def but1_2(call):
     if call.data == 'yes':
        bot.register_next_step_handler(call.message, func_but)   #отсюда бот не возвращается на func_but
     elif call.data == 'no':
        bot.register_next_step_handler(call.message, result_1)    #и отсюда бот не идёт на след. функцию result1

def result_1(message):
    # вычисления
    # вывод вычеслений
bot.polling()


Дедулю отблагодари!
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы