Задать вопрос
@Roper222

Почему оператор называется with?

Здравствуйте, в пайтоне есть оператор with (контекстный менеджер). Кто знает почему он так называется? With - это "c, вместе с". Пайтон - красивый язык, большинство условий читаемы как текст, а with понять не могу.
  • Вопрос задан
  • 95 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Вполне логичное название. Оператор with объявляет некоторый контекст, с которым работает код внутри блока оператора. Код практически дословно можно перевести:
with open('some.file') as f:
    for line in f:
        print(line)

с открыть('некоторый.файл') как f:
    для каждой строки в f:
        напечатать(строку)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Sobolev5
@Sobolev5
Python developer
Оператор with это просто синтаксический сахар.
Его удобно использовать при написании классов для работы с базами, файлами, а также какими либо сетевыми соединениями, где постоянно нужно выполнять ряд рутинных операций.

"Под капотом" with выполняются два магических метода:
__enter__ при открытии контекста
__exit__ при выходе из контекста.

Соответственно чтобы ваш класс можно было использовать с конструкцией with, вам достаточно объявить эти два метода в своем классе и указать операции, которые будут каждый раз выполняться при "открытии" и "закрытии".

Хорошая статья по данной теме https://pavel-karateev.gitbook.io/intermediate-pyt...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы