Телеграмм бот, передать значение из одной функции в другую

Пишу бота, который сначала по контакту идентифицирует пользователя, а потом этому пользователю выдает кусок информации из xls файла.

После идентификации пользователь видит 4 кнопки, нажимает на одну из них и должен получить расчет. Функция расчет должна брать в качестве аргумента значение, полученное в функции идентификации пользователя - это фио пользователя. Никак не могу понять как эти данные передать в next_func(). bot.register_next_step_handler ждет сообщения от пользователя, а его не будет.

import telebot
import pandas as pd

bot = telebot.TeleBot(TOKEN)


@bot.message_handler(commands=['start'])
def phone(message):
    keyboard = types.ReplyKeyboardMarkup(row_width=1, resize_keyboard=True) 
    button_phone = types.KeyboardButton(text="Отправить контакт", request_contact=True) 
    keyboard.add(button_phone) 
    bot.send_message(message.chat.id, 'Для идентификации нажмите на кнопку Отправить контакт', reply_markup=keyboard)  


@bot.message_handler(content_types=['contact'])  # Объявили ветку, в которой прописываем логику на тот случай, если пользователь решит прислать номер телефона :)
def contact(message):
    if message.contact is not None: 
        print(message.contact)# Выводим у себя в панели контактные данные
        df_users = pd.read_excel('users_bd.xlsx', sheet_name='users')
        phone_to_search = int(message.contact.phone_number)
        #проверяем наличие телефона в нашей бд
        if (df_users['phone'] == phone_to_search).any():
            index_of_user = df_users[df_users['phone'] == phone_to_search]['name_rus'].index[0]
            login_of_user = df_users.loc[index_of_user]['name_rus']
            **print(login_of_user)**
            bot.send_message(message.chat.id, 'Вам доступны данные по {}'.format(login_of_user))
            #авторизовали юзера и показываем, что можем
            bot.send_message(message.from_user.id, "Актуальные данные бота:\n"
                                                   "   Доходы: {rev}\n"
                                                   "   Расходы на ФОТ: {sal}\n"
                                                   "   Расходы на агентов: {ag}".format(rev=revenue_update,
                                                                                        sal=salary_update,
                                                                                        ag=agents_update))
            keyboard = types.InlineKeyboardMarkup()
            key_revenue = types.InlineKeyboardButton(text='Доходы', callback_data='calculation_rev')
            keyboard.add(key_revenue)
            key_salary = types.InlineKeyboardButton(text='Расходы на ФОТ', callback_data='calculation')
            keyboard.add(key_salary)
            key_agents = types.InlineKeyboardButton(text='Расходы на агентов', callback_data='calculation')
            keyboard.add(key_agents)
            key_bonus = types.InlineKeyboardButton(text='Расчет текущего бонуса', callback_data='calculation')
            keyboard.add(key_bonus)
            # Показываем все кнопки сразу и пишем сообщение о выборе
            bot.send_message(message.from_user.id, text='Выберите, что нужно сделать', reply_markup=keyboard)

        else:
            bot.send_message(message.chat.id, 'У Вас нет доступа к боту. Обратитесь к администратору.')


@bot.callback_query_handler(func=lambda call: True)
def callback_worker(call):
    # Если нажали на одну из кнопок - запускаем разные расчеты
    if call.data == "calculation_rev":
        #тут кусок кода по расчет revenue
        bot.send_message(call.message.chat.id, 'Сейчас все посчитаю revenue')
        next_func(login_of_user)

    elif call.data == "calculation":
        bot.send_message(call.message.chat.id, 'Это я еще не умею, но скоро научусь)')


def next_func(login_of_user):
    #надо как-то передать сюда login_of_user из функции контакт
    pass


bot.polling(none_stop=True, interval=0)

Ответы (0 шт):