Sobes.tech
Junior — Middle
88

¿Podría dar un ejemplo de métodos especiales que se llaman automáticamente en situaciones específicas?

Empresas donde se preguntó
СБЕР Центр ИИСБЕР Центр ИИ

Respuesta de la IA

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__ — закрывает, даже если внутри блока возникла ошибка.