Позволяет задать действия для инициализации контекста.
object.__enter__()

Является частью протокола контекстных менеджеров.

class MyContextManager(object):

def __enter__(self):
print('enter')
return self

def __exit__(self, exc_type, exc_value, traceback):
print('exit')



with MyContextManager() as manager: # enter
print(manager.__class__.__name__) # MyContextManager
# exit

Метод может возвращать как self, так и любой другой объект.

При использовании инструкции with результат работы метода, будет доступен в части as .

Примером менеджера контекста, возвращающего self, может служить файл.
Объекты файлов, возвращают из метода __enter__() себя же для того, чтобы можно было использовать open() с with в качестве выражения, порождающего контекст.

Примером менеджера, возвращающего другой объект может служить decimal.localcontext().
Менеджер создаёт и возвращает копию контекста десятичных вычислений, которую можно изменять внутри кода в блоке with, что не повлияет на исполнение кода вне блока.

Внимание
На уровне Python C API для этого метода в структуре типа отдельный слот не предусмотрен. Модулям-расширениям, которые хотят определить метод, должны сделать это при помощи обычных Python-методов — по сравнению с затратами, необходимыми для создание контекста исполнения, затратами на поиск метода в словаре можно пренебречь.
Синонимы поиска: object.__enter__, object, __enter__
На заметку
Зарегистрированные пользователи могут публиковать свои мнения относительно Книг, Видео, Статей других авторов и прочего в разделе Обсуждений.