Курс 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. Проверка подстроки в строке
  2. Аннотации типов в Python
  3. Оператор in для Python
  4. Хранение данных с помощью dataclasses
  5. Функция enumerate в Python
  6. Преобразование букв в нижний регистр
  7. Функциональное программирование.
  8. Функция product() в Python
  9. Запуск внешнего кода в Jupyter
  10. Управление ресурсами в Python
  11. Управление виртуальными окружениями в Python
  12. Работа с комплексными числами в Python
  13. Объединение словарей в Python
  14. Оператор Walrus в Python 3.8
  15. Создание генераторов
  16. Циклы в Python
  17. Удаление элемента из списка в Python
  18. Defaultdict в Python
  19. Преобразование вложенного списка
  20. Создание списков в Python
  21. Список методов и атрибутов
  22. Numpy: объединение массивов
  23. Работа с IP-адресами в Python
  24. Оформление текста в консоли с TermColor
  25. Объединение строк с помощью метода join
  26. Удаление ключей из словаря
  27. Поиск наиболее частого элемента в списке
  28. Преобразование числа в восьмеричную строку
  29. Создание словарей в Python
  30. Импорт с альтернативным именем
  31. Проблема с изменяемыми аргументами
  32. Удаление дубликатов с сохранением порядка с помощью dict.fromkeys
  33. split() — разделение строки
  34. Фильтры Pillow: NEAREST, BILINEAR, BICUBIC
  35. Работа с NumPy.linalg
  36. Установка виртуального окружения Python
  37. Списковое включение в Python
  38. Поиск всех индексов подстроки
  39. Colorama: окрашивание текста в Python
  40. Работа со стеком в Python
  41. Обработка исключений в Python
  42. Обезопасьте ввод данных
  43. Профилирование кода
  44. Многопоточность в Python
  45. Списки в Python
  46. ChainMap.new_child() — добавление нового словаря
  47. Улучшение читаемости кода в Python
  48. Оператор «not» в Python

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