Курс 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. Работа с изображениями PIL
  2. Использование эмодзи в Python
  3. Управление контекстом с помощью декоратора contextmanager
  4. Итерация по итерируемым объектам
  5. Умножение строк и списков
  6. Многострочные строки в Python
  7. Переопределение метода sub
  8. Работа с zip-архивами в Python
  9. Автоматизация действий с Pyautogui
  10. Форматирование чисел в Python
  11. Управление контекстом выполнения
  12. Метод radd для пользовательских чисел
  13. Удаление дубликатов из списка
  14. Оператор in в Python
  15. Атрибуты класса и экземпляра
  16. Сглаживание списка
  17. Логический оператор «and» в Python
  18. Преобразование строк в числа с плавающей запятой
  19. Оператор Walrus: правильное использование
  20. Проверка надежности пароля на Python
  21. Оператор «not» в Python
  22. Объединение Python и Shell
  23. Сортировка и обратный порядок
  24. Курс по дообучению ChatGPT
  25. Генератор списка в Python
  26. Цепные операции в Python
  27. Функция findall() для поиска вхождений строки
  28. Измерение потребления памяти при сортировке
  29. Основы Python за 14 дней
  30. Работа с argparse
  31. Фильтрация входных данных в Python
  32. Лямбда-функции для min/max
  33. Проверка наличия элемента в списке
  34. Декораторы в Python
  35. Преобразование Word в PDF с Spire.Doc
  36. Округление дробей в Python
  37. Распаковка значений в Python
  38. Python: цикл for и оператор присваивания
  39. Метод remove() для удаления элемента из списка
  40. Управление памятью в Python
  41. Python: библиотеки и функции
  42. Нахождение хеша для бесконечности и NaN в Python
  43. Изменение переменной в Python: nonlocal
  44. Декоратор @override
  45. Просмотр файла в Jupyter Noteboo
  46. Метод join() для объединения элементов строки
  47. Руководство по использованию Colorama

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