Байдецкая Марина 319/2 CorrectFloat 14115
Токарев Андрей Вадимович, 617 группа CorrectFloat 13716
f1from functools import wrapsf1from functools import wraps
22
3class Fix:3class Fix:
44
5    def __init__(self, n):5    def __init__(self, n):
6        self.n = n6        self.n = n
77
8    def __call__(self, func):8    def __call__(self, func):
99
10        @wraps(func)10        @wraps(func)
11        def wrapper(*args, **kwargs):11        def wrapper(*args, **kwargs):
n12            rounded_args = []n12            converted_args = []
13            for arg in args:13            for arg in args:
14                if isinstance(arg, float):14                if isinstance(arg, float):
n15                    rounded_args.append(round(arg, self.n))n15                    converted_args.append(round(arg, self.n))
16                else:16                else:
n17                    rounded_args.append(arg)n17                    converted_args.append(arg)
18            rounded_kwargs = {}18            converted_kwargs = {}
19            for k, v in kwargs.items():19            for k, v in kwargs.items():
20                if isinstance(v, float):20                if isinstance(v, float):
n21                    rounded_kwargs[k] = round(v, self.n)n21                    converted_kwargs[k] = round(v, self.n)
22                else:22                else:
t23                    rounded_kwargs[k] = vt23                    converted_kwargs[k] = v
24            result = func(*rounded_args, **rounded_kwargs)24            out = func(*converted_args, **converted_kwargs)
25            if isinstance(result, float):25            if isinstance(out, float):
26                return round(result, self.n)26                out = round(out, self.n)
27            else:
28                return result27            return out
29        return wrapper28        return wrapper
Legends
Colors
 Added 
Changed
Deleted
Links
(f)irst change
(n)ext change
(t)op