f | from functools import wraps | f | from functools import wraps |
| | | |
| class Fix: | | class Fix: |
| | | |
| def __init__(self, n): | | def __init__(self, n): |
| self.n = n | | self.n = n |
| | | |
| def __call__(self, f): | | def __call__(self, f): |
| | | |
| @wraps(f) | | @wraps(f) |
t | def decorator(*args, **kwargs): | t | def wrapper(*args, **kwargs): |
| args = [round(i, self.n) if isinstance(i, float) else i for | | round_args = [round(arg, self.n) if isinstance(arg, float) e |
| i in args] | | lse arg for arg in args] |
| kwargs = {i: round(j, self.n) if isinstance(j, float) else j | | round_kwargs = {k: round(v, self.n) if isinstance(v, float) |
| for i, j in kwargs.items()} | | else v for k, v in kwargs.items()} |
| result = f(*args, **kwargs) | | ret = f(*round_args, **round_kwargs) |
| return round(result, self.n) if isinstance(result, float) el | | return round(ret, self.n) if isinstance(ret, float) else ret |
| se result | | |
| return decorator | | return wrapper |