Pythoner
Фотография
✈️Метод __call__ позволяет использовать класс как декоратор:
class Logger:
def __call__(self, func):
def wrapper(*args, **kwargs):
print(f"Вызов {func.__name__} с аргументами {args} {kwargs}")
result = func(*args, **kwargs)
print(f"Результат: {result}")
return result
return wrapper
@Logger()
def add(a, b):
return a + b
add(3, 4)
# Вызов add с аргументами (3, 4) {}
# Результат: 7
💡Заключение:
Это полезно для логирования, измерения времени работы функций и других задач.
🐍 Pythoner
19 · 1.8K ·