Найти - Пользователи
Полная версия: Значение переменной из обработчика кнопок телеграмм-бота !
Начало » Python для новичков » Значение переменной из обработчика кнопок телеграмм-бота !
1
burmat84
Добрый день ! Я новичёк в 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 уже не видна ???
py.user.next
При каждой команде бот запускается заново. Поэтому нужно сделать память ему где-нибудь в базе данных.
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