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, func): | | def __call__(self, func): |
| | | |
| @wraps(func) | | @wraps(func) |
| def wrapper(*args, **kwargs): | | def wrapper(*args, **kwargs): |
t | new_args = tuple((round(a, self.n) if isinstance(a, float) e | t | args = tuple((round(a, self.n) if isinstance(a, float) else |
| lse a for a in args)) | | a for a in args)) |
| new_kwargs = {k: round(v, self.n) if isinstance(v, float) el | | kwargs = {k: round(v, self.n) if isinstance(v, float) else v |
| se v for k, v in kwargs.items()} | | for k, v in kwargs.items()} |
| result = func(*new_args, **new_kwargs) | | result = func(*args, **kwargs) |
| if isinstance(result, float): | | if isinstance(result, float): |
| return round(result, self.n) | | return round(result, self.n) |
| return result | | return result |
| return wrapper | | return wrapper |