@ggg331
gg

Python(telebot) как можно сделать активацию переменной при вызове определённой функции или? Нужно для проверки в боте активна ли клавиатура или нет!?

Как сделать чтоб переменная активировалась при вызывании определённой функции ?
Как сделать проверку активна переменная в какой либо функции или классе ?
  • Вопрос задан
  • 111 просмотров
Решения вопроса 1
@o5a
Не зная, как у вас реализовано, сложно сказать. Насколько понял речь все еще про ReplyKeyboardMarkup. Можно использовать например словарь (или класс для хранения данных) для хранения состояний. И для каждой клавиатуры проставлять состояние. Условно
states = {"kb":None}

def ... клавиатура1
    keyboard = telebot.types.ReplyKeyboardMarkup(resize_keyboard=True)
    button1 = telebot.types.KeyboardButton(f'Да')
    button2 = telebot.types.KeyboardButton(f'Нет')
    keyboard.row(button1, button2)
    states["kb"] = "kb1"
    bot.send_message(message.chat.id, message, reply_markup=keyboard)

def ... клавиатура2
    keyboard = telebot.types.ReplyKeyboardMarkup(resize_keyboard=True)
    button1 = telebot.types.KeyboardButton(f'Да')
    button2 = telebot.types.KeyboardButton(f'Нет')
    keyboard.row(button1, button2)
    states["kb"] = "kb2"
    bot.send_message(message.chat.id, message, reply_markup=keyboard)

@bot.message_handler(content_types=['text'])
def echo_text(message):
    if states["kb"] == "kb1":
        if message.text == 'Да':
    elif states["kb"] == "kb2":
        if message.text == 'Да':
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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