Обрабатывать Контекст with
Правильно ли в методе __exit__
как-то взаимодействовать с exc_type
? Делать какие действия, если ошибка определенного типа
class Config:
def __init__(self, block: int) -> None:
self.__block = block
def __enter__(self):
return self.__block
def destroy(self, suppress: bool):
if suppress:
print(True)
else:
print(False)
def __exit__(self, exc_type, exc_val, exc_tb) -> bool:
flag = False
if exc_type is not None:
if exc_type is TypeError:
flag = True
self.destroy(suppress=flag)
return True
if __name__ == '__main__':
with Config((1920, 1080)) as b:
b[0] = 1920
Источник: Stack Overflow на русском