Курс Python → Управление ресурсами с контекстными менеджерами

Контекстные менеджеры в Python представляют собой объекты, которые реализуют методы `__enter__` и `__exit__`. Метод `__enter__` выполняется при входе в блок кода, управляемый контекстным менеджером, и возвращает ресурс, который будет использоваться в этом блоке. Метод `__exit__` вызывается при выходе из блока кода и служит для освобождения ресурсов.

Для использования контекстных менеджеров в Python используется ключевое слово `with`. Например, для открытия файла и автоматического его закрытия после использования можно написать следующий код:


with open('file.txt', 'r') as file:
    data = file.read()
    print(data)

В данном примере контекстный менеджер `open` открывает файл ‘file.txt’ для чтения. После завершения блока кода, данные из файла считываются и выводятся на экран. При этом файл автоматически закрывается, даже если произошла ошибка внутри блока кода.

Контекстные менеджеры также широко используются для работы с сетевыми соединениями, базами данных, блокировками и другими ресурсами. Они обеспечивают более безопасное и удобное управление ресурсами в Python, уменьшая вероятность утечек памяти и других проблем, связанных с управлением ресурсами.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Оптимизация сравнения в Python
  2. Поиск повторов в списке
  3. Python: динамическая типизация и проверка типов
  4. Подсказки типов в Python
  5. Работа с collections.Counter
  6. Метод difference_update() — разность множеств
  7. Поиск частых элементов в списке
  8. Методы обработки строк в Python
  9. Анализ текста на русском языке с помощью Pymystem3
  10. Чтение и запись TOML-конфигов
  11. Статическая типизация в Python
  12. Проверка вхождения подстроки
  13. Метод __irshift__ для побитового сдвига вправо
  14. Создание словаря с значением по умолчанию
  15. Улучшенные подсказки для импорта в Python 3.12
  16. Установка и использование pyshorteners
  17. Сортировка слиянием
  18. Управление браузером с Selenium
  19. Оператор морж в Python 3.8
  20. Python Поверхностное Копирование
  21. Асинхронное программирование с asyncio
  22. Метод title() в Python
  23. Работа с WindowsPath()
  24. Переопределение оператора % для объектов
  25. Различия символов в Python
  26. Работа с очередями в Python
  27. Объединение словарей в Python
  28. Удаление специальных символов с помощью re.sub
  29. Глобальные переменные в Python
  30. Многоточие в Python
  31. Удаление ресурса в Python
  32. Обработка ошибки IndexError
  33. Необязательные аргументы в Python
  34. Проблема сравнения словарей
  35. Официальный канал Python в Telegram
  36. Выражения-генераторы в Python
  37. Работа с геоданными с помощью geopy
  38. Контекстный менеджер в Python
  39. Объединение словарей в Python
  40. Извлечение аудио из видео
  41. Копирование и вставка текста в Python
  42. Оператор объединения словарей
  43. Сортировка HTML по CSS-селектору
  44. Передача словаря через **kwargs
  45. Создание функций с произвольным количеством аргументов

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