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

R3dShark

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

1648632712718.png
 
Переменные могут быль локальными только если объявлены в контексте какой-то функции, в твоём случае ошибка 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)
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →

Популярный контент

🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab