Развёрнутое пояснение
1️⃣Переменная 𝚡 указывает на строковый объект "𝚑𝚎𝚕𝚕𝚘".
2️⃣Вызов 𝚡.𝚞𝚙𝚙𝚎𝚛() создаёт новый строковый объект "𝙷𝙴𝙻𝙻𝙾" и возвращает его. Но результат не присвоен никакой переменной — он просто теряется.
3️⃣Переменная 𝚡 по-прежнему указывает на исходный объект "𝚑𝚎𝚕𝚕𝚘".
4️⃣Чтобы получить ожидаемый результат, нужно писать 𝚡 = 𝚡.𝚞𝚙𝚙𝚎𝚛().
5️⃣То же самое относится ко всем строковым методам: 𝚛𝚎𝚙𝚕𝚊𝚌𝚎(), 𝚜𝚝𝚛𝚒𝚙(), 𝚕𝚘𝚠𝚎𝚛() — все они возвращают новую строку.
Почему это важно
Те, кто привык к мутирующим методам списков (𝚊𝚙𝚙𝚎𝚗𝚍, 𝚜𝚘𝚛𝚝), часто ожидают такого же поведения от строковых методов. Забытый 𝚡 = 𝚡.𝚜𝚝𝚛𝚒𝚙() — классический баг при обработке текста.
Post #4678
818
- ✍ 3