Объясните, как работает декоратор @functools.wraps и зачем он нужен. Приведите пример кода, где его отсутствие приведёт к нежелательным последствиям.