Назад к вопросам
СБЕР Центр ИИ
Junior — Middle
54
Могли бы вы привести пример применения специальных методов, которые вызываются автоматически в определённых ситуациях?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
В Python есть специальные методы (магические методы), которые вызываются автоматически в определённых ситуациях. Например:
__init__— вызывается при создании объекта для инициализации.__str__— вызывается при преобразовании объекта в строку (например, при вызовеprint).__enter__и__exit__— используются в контекстных менеджерах (with), автоматически вызываются при входе и выходе из блока.
Пример с контекстным менеджером:
class FileManager:
def __init__(self, filename):
self.filename = filename
def __enter__(self):
self.file = open(self.filename, 'r')
return self.file
def __exit__(self, exc_type, exc_val, exc_tb):
self.file.close()
with FileManager('example.txt') as f:
data = f.read()
print(data)
Здесь __enter__ автоматически открывает файл, а __exit__ — закрывает, даже если внутри блока возникла ошибка.