Нужно реализовать 2 метода __enter__ и  __exit__

class MyContextManager:

    def __enter__(self):
        print("Entering context")

    def __exit__(self, exc_type, exc_val, exc_tb):
        print("Exiting context")

with MyContextManager():
    print("Inside context")
  1. with сохраняет метод __exit__ класса File.
  2. Следует вызов метода __enter__ класса File.
  3. Метод __enter__ открывает файл и возвращает его.
  4. Дескриптор файла передается в opened_file.
  5. Мы записываем информацию в файл при помощи .write().
  6. with вызывает сохраненный __exit__ метод.
  7. Метод __exit__ закрывает файл.