Специального небольшого лимита на число декораторов у функции нет. Но каждый слой усложняет порядок выполнения, диагностику и иногда увеличивает глубину вызовов.
Количество декораторов на функции чем-то ограничено?
Специального небольшого лимита на число декораторов у функции нет. Но каждый слой усложняет порядок выполнения, диагностику и иногда увеличивает глубину вызовов.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Специального небольшого лимита на число декораторов у функции нет. Но каждый слой усложняет порядок выполнения, диагностику и иногда увеличивает глубину вызовов.
Запись @a над @b означает примерно f = a(b(f)): применять декораторы начинают с ближайшего к функции. При вызове порядок зависит от созданных обёрток и от того, вызывают ли они внутреннюю функцию. Большое число обычных вложенных wrappers может упереться в ресурсы или глубину рекурсии, хотя декоратор не обязан создавать wrapper вообще. Практическое ограничение — читаемость: взаимозависимые авторизация, кеширование и транзакции лучше проектировать явно и покрывать проверками порядка.