Курс 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. Обработка элементов в Python
  3. Удаление элементов по срезу
  4. Метод join для объединения строк
  5. Метод rlshift для битового сдвига
  6. Игра Виселица на Python
  7. Использование двоеточия в Python
  8. Парсинг веб-страниц с Beautiful Soup
  9. Анализ кода — Python
  10. Метод classmethod
  11. Конвертация коллекций в Python
  12. Обновление шаблона base.html
  13. Закрытие файла в Python
  14. Метод invert для побитового отрицания
  15. Список импортированных модулей в Python
  16. Объединение списков в Python
  17. Фильтры Pillow: NEAREST, BILINEAR, BICUBIC
  18. Обновление ключей в Python
  19. Форматирование заголовков в Python
  20. Бинарный поиск
  21. Библиотека Emoji: использование смайлов в Python
  22. Любовь к Python
  23. Получение частей дроби
  24. Управление памятью в Python
  25. Конкатенация строк с методом join()
  26. Метод join() для объединения элементов строки
  27. Форматирование строк в Python
  28. Преобразование данных в Python
  29. Преобразование объекта в строку
  30. Пропуск начальных строк с помощью dropwhile()
  31. Обработка ошибок в Python
  32. Генерация случайных чисел Python
  33. Получение списка кортежей из словаря
  34. Определение функций с необязательными аргументами
  35. Хранение данных с помощью dataclasses
  36. Цикл for в Python
  37. Python 3.12: переиспользование кавычек
  38. Форматирование строк в Python
  39. None в Python: использование и особенности
  40. Переворот списка в Python
  41. Хешируемые ключи в Python
  42. Ускорение кода с помощью векторизации
  43. Функции range() в Python
  44. Работа с itertools
  45. Функция zip() в Python
  46. Ветвление выражения в Python
  47. ChainMap.new_child() — добавление нового словаря

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