Всеволод Оплачко, 404 группа КФ CorrectFloat 13725
Воробьев Егор Александрович, 419/2 (КФ) CorrectFloat 14028
f1from functools import wrapsf1from functools import wraps
22
3class Fix:3class Fix:
44
5    def __init__(self, n):5    def __init__(self, n):
6        if not 1 <= n <= 16:6        if not 1 <= n <= 16:
n7            raise ValueError('n должно быть в диапазоне от 1 до 16')n7            raise ValueError()
8        self.n = n8        self.n = n
99
10    def __call__(self, func):10    def __call__(self, func):
1111
12        @wraps(func)12        @wraps(func)
13        def wrapper(*args, **kwargs):13        def wrapper(*args, **kwargs):
t14            rounded_args = tuple((round(arg, self.n) if isinstance(argt14            rounded_args = tuple((round(a, self.n) if isinstance(a, floa
>float) else arg for arg in args))>t) else a for a in args))
15            rounded_kwargs = {k: round(v, self.n) if isinstance(v, float15            rounded_kwargs = {k: round(v, self.n) if isinstance(v, float
>) else v for k, v in kwargs.items()}>) else v for k, v in kwargs.items()}
16            result = func(*rounded_args, **rounded_kwargs)16            result = func(*rounded_args, **rounded_kwargs)
17            return round(result, self.n) if isinstance(result, float) el17            return round(result, self.n) if isinstance(result, float) el
>se result>se result
18        return wrapper18        return wrapper
Legends
Colors
 Added 
Changed
Deleted
Links
(f)irst change
(n)ext change
(t)op