Курс 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. Создание задания в Cron
  2. Реверс строки в Python
  3. Правила именования переменных
  4. Конкатенация строковых литералов
  5. Модуль pprint: улучшение вывода данных
  6. Изменение списка срезами
  7. PEP-401: оператор
  8. Создание таблиц в терминале с PrettyTable
  9. Работа с файлами в Python
  10. Определение имен функций
  11. Подсчет элементов в Python
  12. Изменение списка срезом
  13. Удаление falsy-значений из списка с помощью filter
  14. Работа с Telegram API на Python
  15. Создание Radio кнопок в tkinter
  16. Установка random seed в Python
  17. Конкатенация строк в Python
  18. Очистка списка от False, None, 0, «»
  19. Преобразование PowerPoint в PDF.
  20. Python: динамическая типизация и проверка типов
  21. Извлечение новостей с newspaper3k
  22. Блок else в Python
  23. Работа с контекстным менеджером Pool
  24. Протокол управления контекстом
  25. Установка виртуального окружения Python
  26. Перетасовка списков в Python
  27. Транспонирование 2D-массива с помощью zip
  28. Импорт объектов из модулей
  29. Создание именованных кортежей в Python
  30. Объединение множеств в Python
  31. Метод gt в Python
  32. Базовые объекты Python
  33. Обработка ошибки IndexError
  34. Разделение строк методом split()
  35. Управление памятью в Python
  36. Форматирование строк в Python
  37. Создание новых функций с помощью functools.partial
  38. Python: отличительная особенность — отступы
  39. Именованные срезы в Python
  40. Порядок и длина множеств в Python
  41. Сортировка слиянием
  42. Преобразование букв в нижний регистр
  43. Модуль os в Python: работа с файлами
  44. Генераторы списков
  45. Разбиение текста в Python

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