| f | class ExceptionTree: | f | class ExceptionTree: | 
            |  |  |  |  | 
            |  | def __init__(self): |  | def __init__(self): | 
            | n | self.classes = {1: type('Exception-1', (Exception,), {'n': 1})} | n | self.exceptions = {1: type('Exception1', (Exception,), {'n': 1}) | 
            |  |  |  | } | 
            |  |  |  |  | 
            |  | def __call__(self, n): |  | def __call__(self, n): | 
            | t | if n not in self.classes: | t | if n not in self.exceptions: | 
            |  | parent_class = self(n // 2) |  | parent = self(n // 2) | 
            |  | self.classes[n] = type(f'Exception-{n}', (parent_class,), {' |  | self.exceptions[n] = type(f'Exception{n}', (parent,), {'n': | 
            |  | n': n}) |  | n}) | 
            |  | return self.classes[n] |  | return self.exceptions[n] |