Найти - Пользователи
Полная версия: telegram бот, переменная из функции
Начало » Python для новичков » telegram бот, переменная из функции
1
random_box
Друзья, всем доброго дня. Пишу бота для телеграм, для обработки заявок пользователей и передачи их в систему хелпдеск GLPI. Пользователь вводит тему заявки и описание. Тема и описание записываются как строки в переменные theme и desc соответственно. Подскажите, как эти переменные использовать далее в коде? Про локальные/глобальные переменные знаю, но все равно не получается их использовать вне предела функций.

 @bot.message_handler(commands=['start'])
def start(message):
    bot.send_message(message.chat.id, ">>> Введите тему заявки:")
    bot.register_next_step_handler(message, add_theme)
def add_theme(message):
    theme = message.text
    bot.send_message(message.chat.id, ">>> Введите описание проблемы:")
    bot.register_next_step_handler(message, add_description)
    return theme
def add_description(message):
    desc = message.text
    bot.send_message(message.chat.id, "Спасибо! Ваша заявка принята и будет обработана в ближайшее время")
    return desc
bot.polling()
DamMercul
В функции используй:
 global theme
 global desc
Потом присваивай им что хочешь. Или можешь в начале коде написать:
 theme = None; desc = None
# И про ‘глобал’ не забудь
Или можешь сделать функцию, которая с ними будет делать что хочешь:
 def get_params(theme, desc):
    do_something_with_em...
spikejke
Создайте словарь - ключ будет chat.id, значение список из 2 элементов в Вашем случае theme, desc.
 users = {}
 @bot.message_handler(commands=['start'])
def start(message):
    bot.send_message(message.chat.id, ">>> Введите тему заявки:")
    bot.register_next_step_handler(message, add_theme)
def add_theme(message):
    theme = message.text
    chat_id = message.chat.id
    bot.send_message(message.chat.id, ">>> Введите описание проблемы:")
    bot.register_next_step_handler(message, add_description)
    users[chat_id] = [theme]
def add_description(message):
   chat_id = message.chat.id
    desc = message.text
    bot.send_message(message.chat.id, "Спасибо! Ваша заявка принята и будет обработана в ближайшее время")
    users[chat_id].append(desc)
bot.polling()
random_box
spikejke
Создайте словарь - ключ будет chat.id, значение список из 2 элементов в Вашем случае theme, desc.

Благодарю, ваш совет помог! Я сделал чуть проще, создал список и добавил в него нужные мне переменные. Все отработало как надо.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB