Курс 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. Применение функции map() в Python
  2. Декораторы в Python
  3. Модуль xkcd: добавление юмора в Python
  4. Обработка ошибок ввода данных
  5. Вакансии в Nebius
  6. Комментарии в Python.
  7. Распаковка аргументов в Python
  8. Генерация фальшивых данных с Faker
  9. GitHub в Telegram: подписка на уведомления
  10. Функция map() и ленивая оценка
  11. Проверка индексов коллекции
  12. Работа с часовыми поясами в Python.
  13. Генераторы в Python
  14. Оператор «or» в Python
  15. Конструктор в Python
  16. Проблемы с dict в Python
  17. Форматирование объектов с модулем pprint
  18. Построение графиков в терминале с bashplotlib
  19. Избегайте использования goto
  20. Генераторные функции в Python
  21. Форматирование строк в Python
  22. Фильтрация списка от «ложных» значений
  23. Работа с изменяемыми списками
  24. Управление браузером с Selenium
  25. Оптимизация гиперпараметров в Python
  26. Работа с асинхронными задачами в Python
  27. Создание файла с проверкой ошибки
  28. Использование функции product
  29. Сериализация объектов в Python
  30. Функции высшего порядка в Python
  31. Python Менеджер контекста
  32. Сортировка HTML-элементов
  33. Поток данных в Python
  34. Перезагрузка оператора в Python
  35. Лямбда-функции в Python
  36. Запуск файлового сервера
  37. Расчет времени выполнения кода
  38. Функция enumerate в Python
  39. Проверка типов с использованием isinstance
  40. Хранение данных
  41. Принципы SRP и OCP
  42. Отладка в Python
  43. Отладчик pdb: начало работы
  44. Профилирование с Pandas
  45. Установка random seed в Python
  46. Оптимизация памяти с __slots__

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