Помогите с глобальными переменными новичку в Питоне. На pyTelegramBotAPI

Делаю тренировочного для себя бота pyTelegramBotAPI. Ниже представлена функция, являющаяся частью цепи одной из команд. Она должна скинуть ссылку на страничку VK человека, имя которого вписывает пользователь. Предыдущая функция (я её сюда не вставил) запрашивала написать это имя, а эта на введённое имя реагирует. Всё лишнее я здесь убрал. Но функция не работает, выскакивает ошибка:

def send_page(message):
    if message.text.upper() == 'САНЯ':
       global link
       link = 'https://vk.com/***'
    elif message.text.upper() == 'ЕКТОГОД':
       global link
       link = 'https://vk.com/***'
    markup = types.InlineKeyboardMarkup()
    markup.add(types.InlineKeyboardButton('Страничка выбранного человека', url=link))
    bot.send_message(message.chat.id, 'Лови: ', reply_markup=markup)

SyntaxError: name 'link' is assigned to before global declaration

Конечно, можно обойтись без переменной link и всё будет работать:

def send_page(message):
    if message.text.upper() == 'САНЯ':
        markup = types.InlineKeyboardMarkup()
        markup.add(types.InlineKeyboardButton('Страничка выбранного человека', url=ссылка*))
        bot.send_message(message.chat.id, 'Лови: ', reply_markup=markup)
    elif message.text.upper() == 'ЕКТОГОД':
        markup = types.InlineKeyboardMarkup()
        markup.add(types.InlineKeyboardButton('Страничка выбранного человека', url=ссылка*))
        bot.send_message(message.chat.id, 'Лови: ', reply_markup=markup)

Но мне такой вид не нравится, соишком много повторений. Как решить проблему? Заранее спасибо!


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

Автор решения: lunar king

Напиши global перед переменой.

→ Ссылка