Курс 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. Создание вложенного генератора
  2. Перемешивание списка с shuffle()
  3. Функции-генераторы в Python
  4. Фильтрация списков с itertools
  5. Руководство по использованию Colorama
  6. Изменение объектов в Python
  7. Метод __int__ в Python
  8. Создание класса очереди
  9. Использование super() в Python
  10. Введение в Python
  11. Установка Python3.7 и PIP
  12. Необязательные аргументы в Python
  13. Преобразование списка в словарь через генератор
  14. Инициализация структур данных
  15. Создание спинбокса в tkinter
  16. Выключение компьютера с помощью Python
  17. Руководство по Pymorphy2
  18. Использование type hints
  19. Функция zip() в Python
  20. Работа с itertools
  21. Список и кортеж в Python
  22. Работа с defaultdictами в Python
  23. Вывод с переменной через запятую
  24. Метод join() для объединения строк
  25. Выражения-генераторы в Python
  26. Методы list в Python
  27. Оператор walrus в Python
  28. Оптимизация памяти с slots
  29. Декодирование байтов в строку
  30. Изменение переменной в Python: nonlocal
  31. Обработка элементов в Python
  32. Combobox в Tkinter
  33. Пространство имен в Python
  34. Работа с эмодзи в Python
  35. Метод ior для битовых операций
  36. Использование подчеркивания в REPL
  37. Работа с комплексными числами в Python
  38. Преобразование числа в список цифр
  39. Упрощение условных выражений с тернарным оператором
  40. Переменные в Python
  41. Синхронизация доступа к ресурсам
  42. Печать календаря
  43. Установка максимального количества цифр
  44. Декоратор @override
  45. Логирование с Logzero
  46. Активация Matplotlib в Jupyter
  47. Функция pow() — возвести число в степень
  48. Отладка утечек памяти в Python
  49. Именованные кортежи в Python

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