Почему глобальная переменная не изменилась?

Использую python-библиотеку aiogram для написания ботов. В первом хэндлере введенное сообщение пользователем сохраняю в переменную answer, далее во втором хэндлере приравниваю каждый символ к нижнему регистру. Далее хочу использовать эту переменную, но обнаруживаю что она так и не поменялась. В чем причина?

@dp.message_handler(state=Link.A1)
async def enter_link(message: types.Message, state: FSMContext):
    global answer
    answer = message.text
    chat_id = message.chat.id
    await bot.send_message(chat_id=chat_id,
                           text=('Введенная ссылка: ' + answer + '. Напишите "yes", если ссылка верна!'))

    await state.finish()

answer = ''

@dp.message_handler(text='yes')
async def good(message: types.Message):
    global answer
    answer.lower()
    chat_id = message.chat.id
    await bot.send_message(chat_id=chat_id, text='Ссылка сменена!')

print(answer)

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

Автор решения: CrazyElf

Потому что результат работы lower надо присвоить обратно в переменную:

answer = answer.lower()

В Python есть много функций, которые работают in place (на месте) и не требуют присвоения, но строковые функции по определению такими не бывают, потому что строки иммутабельны (неизменны).

→ Ссылка