• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Проблема с global и local переменными. Telebot

R3dShark

One Level
27.02.2022
1
0
BIT
0
Сама суть: Мне нужно чтобы бот принимал сообщение от пользователя и передавал это значение в другую функцию для обработки информации. Я так понял, что переменная message.text является локальной, и её невозможно юзать за пределами функции. Как это можно реализовать? Я новичок в питоне, не ругайте сильно за говнокод.

1648632712718.png
 

MrHacker1337_228

One Level
02.05.2020
52
0
BIT
228
Переменные могут быль локальными только если объявлены в контексте какой-то функции, в твоём случае ошибка SyntaxError и я не вижу чтобы у тебя был определён объект message. Ты поставил WRAPPER @bot.message_handler перед обычным кодом а должен был поставить перед функцией. Функция перед которой ты ставишь WRAPPER(обёртку) вызывается каждый раз классом bot и в неё передаётся в качестве аргумента объект message. Функции которые вызываются при определённом событии или функции которые ты передаёшь как аргумент обычно называются колбэки(CALLBACK).И ты как раз таки должен создать функцию-колбэк. Я не тестил, но скорее всего ты должен сделать вот так:

Python:
@bot.message_handler(content_types=['text'])
def onMessageRecved(message):
    print(message.text)

bot.polling(none_stop=True, interval=0)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!