Курс 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. Flask: создание веб-приложений
  2. Поиск подстроки в строке
  3. Замена элементов в списке с помощью генераторов списков
  4. Генераторы в Python
  5. Функция zip() — объединение последовательностей
  6. Лямбда-функции в цикле
  7. Декораторы классов
  8. Создание новых списков в Python
  9. Combobox в Tkinter
  10. Импорт модуля из другого каталога
  11. Функциональное программирование.
  12. Возврат нескольких значений
  13. Ограничение ресурсов в Python
  14. Математические функции в Python
  15. Закрытие файла в Python
  16. Перегрузка операторов в Python
  17. Работа с Telegram API на Python
  18. Модуль pprint
  19. Философия Python
  20. Функция reversed() в Python
  21. IPython и Jupyter Notebook: руководство
  22. 9 уловок для чистого кода
  23. Путь к интерпретатору Python
  24. Добавление цвета в консоли
  25. Создание списков в Python
  26. Объединение итераторов
  27. enumerate() в Python для работы с индексами
  28. Чтение бинарного файла в Python.
  29. Работа с timedelta
  30. Оператор «not» в Python
  31. Работа с файлами в Python
  32. Контроль точности вывода чисел
  33. Метод __index__ в Python
  34. Python 3.12: Псевдонимы типов
  35. Динамическая типизация в Python
  36. Итераторы с потерямиZIP
  37. Solidity для DeFi Ethereum
  38. Функциональное программирование в Python
  39. Безопасные SQL-запросы в Python 3.11
  40. Python Метод sleep() времени
  41. Непрерывная проверка в Python
  42. Python union() функция — объединение множеств
  43. Хеширование паролей с использованием salt
  44. Создание словаря в Python
  45. Работа с CSV файлами в Python
  46. Генераторы списков

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