| Лычева Екатерина Олеговна, 530 ExceptionTree 12013 | Сунь Чжунъао, 622 группа ExceptionTree 11972 | ||||
|---|---|---|---|---|---|
| f | 1 | class ExceptionTree: | f | 1 | class ExceptionTree: | 
| 2 | 2 | ||||
| 3 | def __init__(self): | 3 | def __init__(self): | ||
| n | 4 | self.made = {} | n | 4 | self.cache = {} | 
| 5 | 5 | ||||
| 6 | def __call__(self, n): | 6 | def __call__(self, n): | ||
| n | 7 | if n in self.made: | n | 7 | if n in self.cache: | 
| 8 | return self.made[n] | 8 | return self.cache[n] | ||
| 9 | if n == 1: | 9 | if n == 1: | ||
| n | 10 | cls = type(f'Exception{n}', (Exception,), {'n': n}) | n | 10 | exc = type(f'Exception_{n}', (Exception,), {'n': n}) | 
| 11 | else: | 11 | else: | ||
| 12 | parent = self(n // 2) | 12 | parent = self(n // 2) | ||
| t | 13 | cls = type(f'Exception{n}', (parent,), {'n': n}) | t | 13 | exc = type(f'Exception_{n}', (parent,), {'n': n}) | 
| 14 | self.made[n] = cls | 14 | self.cache[n] = exc | ||
| 15 | return cls | 15 | return exc | ||
| Legends | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| 
 | 
 | |||||||||