Курс 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. Метод join для наборов
  2. ChainMap.new_child() — добавление нового словаря
  3. Сравнение строк в Python
  4. Отправка POST-запроса в REST API
  5. Работа с zip()
  6. Работа с Telegram API на Python
  7. Роль object и type в Python
  8. Разбиение текста в Python
  9. Работа с геоданными с помощью geopy
  10. Работа с OpenCV
  11. Назначение максимального и минимального значения переменной в Python.
  12. Проверка однородности элементов списка
  13. Оценка выражений генератора в Python
  14. Метод join() для объединения элементов
  15. Парсинг веб-страниц с Beautiful Soup
  16. Использование подчеркивания в REPL
  17. Проблема с изменяемыми аргументами
  18. Замена элементов в списке с помощью генераторов списков
  19. Отображение HTML кода в Python
  20. Извлечение новостей с помощью newspaper3k
  21. Загрузка постов Instagram
  22. Форматирование данных с помощью pprint
  23. Эффективная конкатенация строк в Python
  24. Синтаксис переменных цикла в Python
  25. Проверка элементов списка условием
  26. Различия символов в Python
  27. Локальные переменные.
  28. Преобразование многоуровневого словаря
  29. Работа с CSV файлами
  30. Обход словаря в Python
  31. Регулярные выражения в Python
  32. Упрощенный вывод данных в Python
  33. Реализация метода __abs__ в Python
  34. Оператор «not» в Python
  35. Простой калькулятор Python
  36. Обновление множества в Python
  37. Печать комбинаций в Python с Itertools
  38. Принципы программирования
  39. Доступ к локальным переменным
  40. Python Ellipsis использование
  41. Метод enumerate() в Python
  42. Python OrderedDict и fromkeys() — работа с словарями
  43. Оператор обр. импликации
  44. Использование type hints
  45. Метод pop() списка
  46. Логирование с Logzero
  47. Объединение словарей в Python
  48. Оператор is в Python
  49. PrettyTable: создание таблицы

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