Back to questions
Junior — Middle
59
Какие специальные методы в Python позволяют реализовать контекстный менеджер и управлять ресурсами?
Answer from AI
sobes.tech AI
В Python для реализации контекстного менеджера используются специальные методы __enter__ и __exit__.
__enter__(self)вызывается при входе в блокwithи обычно возвращает ресурс.__exit__(self, exc_type, exc_val, exc_tb)вызывается при выходе из блокаwith, где можно освободить ресурсы или обработать исключения.
Пример:
class FileManager:
def __init__(self, filename, mode):
self.file = open(filename, mode)
def __enter__(self):
return self.file
def __exit__(self, exc_type, exc_val, exc_tb):
self.file.close()
with FileManager('test.txt', 'w') as f:
f.write('Hello, world!')
Таким образом, эти методы позволяют автоматически управлять ресурсами, например, открытием и закрытием файлов.