Курс 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. Добавление Progressbar в Python
  3. Избегайте пустого списка
  4. Операторы сравнения в Python
  5. Генерация случайных чисел в Python
  6. Измерение времени выполнения кода с использованием time
  7. Оформление кода по PEP 8
  8. Работа с индексами списков
  9. Импорт в Python: список all
  10. Метаклассы в Python
  11. Встраивание HTML в Jupyter Notebook
  12. Обработка исключений с блоком else
  13. Порядок операций в Python
  14. Многострочные комментарии в Python
  15. Сортировка и обратный порядок
  16. Метод __float__ в Python
  17. Метод rename() для переименования файлов и каталогов
  18. Инициализация переменных
  19. Оптимизация гиперпараметров с Scikit Optimize
  20. Создание и использование модулей в Python
  21. Перегрузка операторов в Python
  22. Группы исключений в Python
  23. Работа с deque из collections
  24. Работа с базами данных SQLite
  25. Распаковка значений в Python
  26. Работа с изменяемыми коллекциями
  27. Оператор in для Python
  28. Работа с массивами в Python
  29. Сравнение def и lambda функций в Python
  30. Кортеж в Python: создание и использование
  31. Логические значения в Python
  32. Установка пакетов с помощью pip
  33. Пропуск строк в файле с itertools
  34. Цикл for с enumerate() в Python
  35. Удаление пробелов методом translate()
  36. Преобразование списка в словарь через генератор
  37. Упрощение условных выражений с тернарным оператором
  38. JSON-esque в Python
  39. Присоединение элементов коллекции
  40. Оптимизация памяти с __slots__
  41. Считывание бинарного файла в Python
  42. Удаление элемента из списка в Python
  43. PEP-401: оператор
  44. Mad Libs Generator
  45. Работа с комбинациями в Python.
  46. Методы и функции в Python
  47. Работа с timedelta в Python
  48. Условное добавление элементов в список

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