Sobes.tech
Junior — Middle
89

Puteți oferi un exemplu de metode speciale care sunt apelate automat în anumite situații?

Companiile au fost întrebate
СБЕР Центр ИИСБЕР Центр ИИ

Răspuns de la AI

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