object.__enter__
Позволяет задать действия для инициализации контекста.
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__
В разделе «object (объект)»:
file (файл)
object.__add__
object.__bool__
object.__call__
object.__ceil__
object.__class__
object.__cmp__
object.__contains__
object.__copy__
object.__deepcopy__
object.__del__
object.__delattr__
object.__delete__
object.__delitem__
object.__delslice__
object.__dir__
object.__eq__
object.__exit__
object.__floor__
object.__format__
object.__ge__
object.__get__
object.__getattr__
object.__getattribute__
object.__getitem__
object.__getslice__
object.__getstate__
object.__gt__
object.__hash__
object.__init__
object.__init_subclass__
object.__iter__
object.__le__
object.__len__
object.__lt__
object.__missing__
object.__ne__
object.__new__
object.__next__
object.next
object.__nonzero__
object.__qualname__
object.__rcmp__
object.__repr__
object.__reversed__
object.__set__
object.__setattr__
object.__setitem__
object.__set_name__
object.__setslice__
object.__setstate__
object.__slots__
object.__str__
object.__sub__
object.__subclasses__
object.__unicode__
property (свойство)
Protocols (протоколы)
slice (срез)
Встроенные исключения
На заметку
Зарегистрированные пользователи могут публиковать свои мнения относительно Книг, Видео, Статей других авторов и прочего в разделе Обсуждений.