Курс Python → Оптимизация интернирования строк
Строки в Python могут быть сложными и важно понимать, как работает интерпретатор при работе с ними. Например, когда вы присваиваете значения «wtf!» переменным a и b в одной строке кода, интерпретатор создает новый объект строки «wtf!» и затем обе переменные одновременно ссылаются на этот объект. Однако, если вы сделаете это в отдельных строках, интерпретатор не будет знать, что уже существует объект «wtf!» в памяти, так как строка неявно интернирована, что является оптимизацией во время компиляции.
Оптимизация интернирования строк не применяется к версиям CPython 3.7.x, что важно учитывать при разработке кода. Это может повлиять на производительность программы, особенно если вам нужно много раз создавать и работать с одинаковыми строками. Поэтому, при работе со строками в Python, рекомендуется учитывать особенности интернирования и оптимизации ваших структур данных.
Для примера, рассмотрим код:
a = "wtf!"
b = "wtf!"
print(a is b) # True
В этом примере, переменные a и b ссылаются на один и тот же объект строки «wtf!», поэтому оператор is возвращает True. Однако, если бы мы присвоили значения «wtf!» переменным a и b в отдельных строках, они бы ссылались на разные объекты, и оператор is вернул бы False. Это пример того, как оптимизация интернирования влияет на работу с объектами строк в Python.
Другие уроки курса "Python"
- Скрытие вывода данных
- Добавление Progressbar в Python
- Избегайте пустого списка
- Операторы сравнения в Python
- Генерация случайных чисел в Python
- Измерение времени выполнения кода с использованием time
- Оформление кода по PEP 8
- Работа с индексами списков
- Импорт в Python: список all
- Метаклассы в Python
- Встраивание HTML в Jupyter Notebook
- Обработка исключений с блоком else
- Порядок операций в Python
- Многострочные комментарии в Python
- Сортировка и обратный порядок
- Метод __float__ в Python
- Метод rename() для переименования файлов и каталогов
- Инициализация переменных
- Оптимизация гиперпараметров с Scikit Optimize
- Создание и использование модулей в Python
- Перегрузка операторов в Python
- Группы исключений в Python
- Работа с deque из collections
- Работа с базами данных SQLite
- Распаковка значений в Python
- Работа с изменяемыми коллекциями
- Оператор in для Python
- Работа с массивами в Python
- Сравнение def и lambda функций в Python
- Кортеж в Python: создание и использование
- Логические значения в Python
- Установка пакетов с помощью pip
- Пропуск строк в файле с itertools
- Цикл for с enumerate() в Python
- Удаление пробелов методом translate()
- Преобразование списка в словарь через генератор
- Упрощение условных выражений с тернарным оператором
- JSON-esque в Python
- Присоединение элементов коллекции
- Оптимизация памяти с __slots__
- Считывание бинарного файла в Python
- Удаление элемента из списка в Python
- PEP-401: оператор
- Mad Libs Generator
- Работа с комбинациями в Python.
- Методы и функции в Python
- Работа с timedelta в Python
- Условное добавление элементов в список















