Камардин Богдан Михайлович 307 CorrectFloat 13300
Даулетбек Досай 404 группа (КФ) CorrectFloat 14607
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('n должен быть в диапазоне от 1 до 16')
>льно') 
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):
14            rounded_args = tuple((round(arg, self.n) if isinstance(arg, 14            rounded_args = tuple((round(arg, self.n) if isinstance(arg, 
>float) else arg for arg in args))>float) else arg for arg in args))
t15            rounded_kwargs = {k: round(v, self.n) if isinstance(v, floatt15            rounded_kwargs = {key: round(value, self.n) if isinstance(va
>) else v for k, v in kwargs.items()}>lue, float) else value for key, value in kwargs.items()}
16            result = func(*rounded_args, **rounded_kwargs)16            result = func(*rounded_args, **rounded_kwargs)
17            if isinstance(result, float):17            if isinstance(result, float):
18                result = round(result, self.n)18                result = round(result, self.n)
19            return result19            return result
20        return wrapper20        return wrapper
Legends
Colors
 Added 
Changed
Deleted
Links
(f)irst change
(n)ext change
(t)op