Предизвикателства > Безгрешен блок > Решения > Решението на Даниел Стефанов

Резултати
1 точки от тестове
0 точки от учител

1 точки общо

1 успешни теста
1 неуспешни теста
Код

 1class ProtectedSection:
 2
 3    def __init__(self, log=(), suppress=()):
 4        self._suppress = tuple(suppress)
 5        self._log = tuple(log)
 6        self.exception = None
 7
 8    def __enter__(self):
 9        return self
10
11    def __exit__(self, exc_type, exc_val, exc_tb):
12        if exc_type in self._log:
13            self.exception = exc_type(exc_val)
14        elif exc_type not in self._suppress:
15            return False
16
17        return True

.F
======================================================================
FAIL: test_special_cases (test.TestSolution.test_special_cases)
Test special cases to show you that you missed something.
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/test.py", line 128, in test_special_cases
self.assertIsNone(cm.exception)
AssertionError: ZeroDivisionError(ZeroDivisionError('division by zero')) is not None

----------------------------------------------------------------------
Ran 2 tests in 0.001s

FAILED (failures=1)

Дискусия
История
Това решение има само една версия.