Можешь объяснить назначение и функциональность декоратора `@functools.cache`, включая то, когда он был введён и как он сравнивается с другими механизмами кэширования в Python? — ДейлиПреп