Курс 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"

  1. Модуль Operator в Python
  2. Заказ карты Тинькофф Black
  3. Транспонирование 2D-массива с помощью zip
  4. Отладка в командной строке
  5. Запуск файлового сервера
  6. Переопределение метода __pow__
  7. Кортежи в Python: особенности и преимущества
  8. Создание новых списков в Python
  9. Выключение компьютера с помощью Python
  10. Проверка типа данных
  11. Генерация ключей RSA
  12. Очистка строки в Python
  13. Работа со словарями в Python
  14. Переименование файлов в Python
  15. Операции с матрицами в Python
  16. Модуль xkcd: загрузка комиксов
  17. Функция map() и ленивая оценка
  18. Сравнение def и lambda функций в Python
  19. ChainMap.new_child() — добавление нового словаря
  20. Инициализация переменных
  21. Нахождение разницы между списками в Python
  22. Операторы объединения в Python 3.9
  23. Инициализация объекта
  24. Функция enumerate в Python
  25. Форматирование строк в Python
  26. Генерация строк с .join()
  27. Логические значения в Python
  28. Лямбда-функции в Python
  29. Разделение строки на пары ключ-значение.
  30. Форматирование вывода списков
  31. capitalize() — изменение регистра первого символа строки
  32. Поиск индекса элемента в списке
  33. Переворот списка в Python
  34. Python: возвращение нескольких значений
  35. Построение графиков в терминале с bashplotlib
  36. Добавление элемента к кортежу
  37. Объединение списков в Python.
  38. Создание новых списков через list comprehensions
  39. ROT13 Шифр Цезаря в Python
  40. Декоратор защиты анонимных пользователей
  41. Оператор match в Python
  42. Метод clear для коллекций
  43. Метод hash в Python
  44. Конвертация коллекций в Python
  45. Повторение элементов в Python

Marketello читают маркетологи из крутых компаний