Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 26, 2021 12:14:53

burmat84
Зарегистрирован: 2021-09-26
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Значение переменной из обработчика кнопок телеграмм-бота !

Добрый день ! Я новичёк в Python прошу помощи, написал заготовку телеграмм-бота который посылает вопросы и считывает значения с клавиатуры. Не получается считать значение переменной вне функции обработчика. В самом обработчике переменная меняется а если вывести её значение за пределы, то ничего, помогите решить проблему ?!

import telebot;
from telebot import types
import time
bot = telebot.TeleBot('TOKEN');
number=0
numb=0

def key (message):
keyboard = types.InlineKeyboardMarkup(); # наша клавиатура
key_yes = types.InlineKeyboardButton(text='Да', callback_data='yes'); # кнопка «Да»
keyboard.add(key_yes); # добавляем кнопку в клавиатуру
key_no = types.InlineKeyboardButton(text='Нет', callback_data='no');
keyboard.add(key_no);
bot.send_message(message.from_user.id, text=“Нажми кнопку”, reply_markup=keyboard)

@bot.callback_query_handler(func=lambda call: True)
def callback_worker(call):
global number
global numb
if call.data == “yes”: #call.data это callback_data, которую мы указали при объявлении кнопки
#код сохранения данных, или их обработки
bot.send_message(call.message.chat.id, ‘Ок, следующий вопрос : )’);
number+=1
elif call.data == “no”:
bot.send_message(call.message.chat.id, ‘Ок, следующий вопрос : )’);
numb+=1

@bot.message_handler(content_types
def get_text_messages(message):
global number
global numb
if message.text == “/start”:
bot.send_message(message.from_user.id, “Ну что начнём ?”)
time.sleep(2)
bot.send_message(message.from_user.id, “Первый вопрос, читаешь книги про спорт ?”)
time.sleep(2)
key(message)
if number == 1 or numb ==1:
bot.send_message(message.from_user.id, “Второй вопрос, ты занимаешься спортом ?”)
key(message)
number=0; numb=0
bot.polling(none_stop=True, interval=0)

В функции def get_text_messages(message) переменная number и numb уже не видна ???

Офлайн

#2 Сен. 27, 2021 08:06:56

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9873
Репутация: +  853  -
Профиль   Отправить e-mail  

Значение переменной из обработчика кнопок телеграмм-бота !

При каждой команде бот запускается заново. Поэтому нужно сделать память ему где-нибудь в базе данных.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version