Мне нужно задать пользователю в телеграмме небольшой список вопросов и каждый ответ сохранить (я это сделал, но мне кажется что это не рациональный подход, если кто-то знает как можно улучшить эту часть кода, прошу помочь), каждый ответ у меня храниться в отдельной функции, как правильно обратиться к переменой из другой функции.
Код:
def mail(message):
    surname = message.text
    msg = bot.send_message(message.chat.id, 'Почта :')
    bot.register_next_step_handler(msg, link)
def link(message):
    mail = message.text
    msg = bot.send_message(message.chat.id, 'Ссылка на тест :')
    bot.register_next_step_handler(msg, time)
def time(message):
    url = message.text
    msg = bot.send_message(message.chat.id, 'Время затраченное на один вопрос ⏳:')
    bot.register_next_step_handler(msg, question)
def question(message):
    time = message.text
    msg = bot.send_message(message.chat.id, 'Хотите получить скрин-отчёт после выполнения теста (д/н)?')
    bot.register_next_step_handler(msg, answer)
def answer(message):
    if message.text == 'да' or 'д' or 'y' or 'yes' or 'Д' or 'Да' or 'ДА' or 'Y' or 'YES' or 'Yes' or '+':
        bool_answer = True
        bot.send_message(message.chat.id, 'Ок ')
        print(link)
    else:
        bool_answer = False
    full_time = time*number_of_questions(url)
    if full_time > 60:
        bot.send_message(message.chat.id, f'Время теста: {full_time/60} минут')
    else:
        bot.send_message(message.chat.id, f'Время теста: {full_time} секунд')
Мне нужно с функции answer обратиться к переменной url из функции time