Курс 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. Операторы сравнения в Python
  2. Многострочные строки в Python
  3. Метод join() для объединения элементов
  4. Создание вложенных циклов for
  5. Именование столбцов в Python с pandas
  6. Удаление ресурса в Python
  7. Аргумент по умолчанию
  8. Генерация случайных данных в NumPy
  9. Обработка аргументов Python
  10. Работа с множествами в Python
  11. Повторение элементов в Python
  12. Lambda Functions in Python
  13. Печать комбинаций в Python с Itertools
  14. Подсчет частотности элементов в Python
  15. Поиск элементов BeautifulSoup
  16. Декораторы в Python
  17. Работа с географическими данными в Python
  18. Метод сравнения объектов в Python
  19. Запуск Python из интерпретатора
  20. Создание списка через итерацию
  21. Списковое включение в Python
  22. Подписка на SelectelNews в Twitter
  23. Преобразование кортежа в словарь.
  24. Python Поверхностное Копирование
  25. Метод __irshift__ для Python
  26. Получение атрибутов и методов класса
  27. Быстрый поиск кода
  28. Класс-оболочка для словарей
  29. Выражения-генераторы в Python
  30. Создание вкладок с TKinter
  31. Генераторы в Python
  32. Docstring в Python
  33. Удаление дубликатов в pandas
  34. Импортирование в Python
  35. Python Метод del.
  36. Удаление файлов и папок в Python
  37. Группы исключений в Python
  38. Python и Юникод: работа с цифрами
  39. Генератор надежных паролей
  40. Работа со строками
  41. Работа с пользовательским вводом
  42. Открытие и редактирование скриптов Python
  43. Структурирование данных с Pydantic
  44. Импорт модулей в Python 3.12
  45. Получение значений из словарей
  46. Оператор += в Python

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