Курс 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. Функция map() в Python
  2. Измерение времени выполнения кода
  3. Оценка точности модели
  4. Деление в Python
  5. Использование функции enumerate()
  6. Метод join() для объединения элементов
  7. Работа с байтовыми строками в Python
  8. Хранение переменных в Python.
  9. Именованные кортежи в Python
  10. Оператор zip в Python
  11. Оператор is в Python
  12. Функция enumerate в Python
  13. Прокачанный трейсинг ошибок
  14. Удаление файлов в Python
  15. Получение текущей даты в Python
  16. Метод ifloordiv для пользовательских классов
  17. Вычисление натуральных логарифмов в NumPy
  18. Иерархия классов в Python
  19. Открытие, чтение и закрытие файла
  20. Декоратор Ajax required
  21. F-строки в Python 3.8
  22. Определение объема памяти объекта
  23. Мониторинг работы программы Py-spy
  24. Логирование в Python
  25. Названия столбцов в Python таблицах
  26. Применение функции к списку
  27. Обработка исключений в Python
  28. Тип данных TypeVarTuple
  29. Применение функции map() в Python
  30. Порядок и длина множеств в Python
  31. Метод add для класса Vector
  32. Передача неизвестных аргументов в Python.
  33. Очистка входных данных
  34. Отладка в Python
  35. Работа с timedelta
  36. Удаление пробелов методом translate()
  37. Возврат нескольких значений из функции
  38. Сравнение строк в Python
  39. Возврат нескольких значений
  40. Объединение списков в Python
  41. Python Translator: создание локальных переводчиков
  42. Python Enumerate
  43. Запрос пароля с помощью getpass
  44. Подсчет элементов в Python
  45. Работа с очередями в Python
  46. Импорт модулей в Python 3.12
  47. Оператор «not» в Python
  48. Python defaultdict добавление ключа
  49. Списки в Python

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