Курс 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. Методы list в Python
  2. Генераторные выражения и islice.
  3. Сложные типы данных в Python
  4. Строки в Python: апострофы и кавычки
  5. Оператор объединения словарей
  6. Лямбда-функции для min/max
  7. Поиск уникальных элементов строкой в Python
  8. Операции с кортежами
  9. Оператор is в Python
  10. Разделение строки на пары ключ-значение.
  11. Преобразование Word в PDF с Spire.Doc
  12. Работа с контекстными переменными
  13. Построение графиков в терминале с bashplotlib
  14. Функции map, filter, reduce
  15. Хранение данных
  16. Управление контекстом с помощью декоратора contextmanager
  17. Множественные конструкторы в Python
  18. Измерение времени выполнения кода
  19. Быстрый поиск кода
  20. Проверка наличия элемента в списке
  21. Использование функции enumerate()
  22. Копирование файлов с shutil()
  23. Подробная информация о %pinfo
  24. Форматирование даты с strftime()
  25. Разделение строк в Python
  26. Структурирование именованных констант
  27. Метод split() в Python
  28. Поиск анаграмм с Counter
  29. Запуск внешних программ с subprocess
  30. Разрешение имен в Python
  31. Создание лямбда-функций
  32. Управление доступом к модулю
  33. Работа с датами в Python
  34. Получение идентификатора объекта в памяти
  35. Удаление эмодзи с помощью pandas
  36. Замыкания в Python
  37. Метод округления чисел
  38. Создание вложенного генератора
  39. Оптимизация памяти с помощью __slots__
  40. Проверка файла .py на синтаксис.
  41. Работа с аргументами командной строки
  42. Срезы в Numpy
  43. Объединение, распаковка и деструктуризация
  44. Вложенные циклы в Python
  45. Работа с Event() в threading
  46. Очистка строки в Python
  47. Создание новой даты в Python

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