Декоратор принимает функцию или другой объект и возвращает его замену либо обёртку. В Airflow @task использует этот механизм для объявления задачи.
Что такое декоратор в Python и для чего он используется (в контексте Airflow)?
Декоратор принимает функцию или другой объект и возвращает его замену либо обёртку. В Airflow @task использует этот механизм для объявления задачи.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Декоратор принимает функцию или другой объект и возвращает его замену либо обёртку. В Airflow @task использует этот механизм для объявления задачи.
В обычном Python декоратор часто добавляет логирование, проверку прав или измерение времени. Запись @decorate над функцией соответствует присваиванию function = decorate(function).
У TaskFlow в Airflow вызов обёрнутой функции во время построения DAG описывает задачу и её аргументы. Исходная функция выполняется позднее в контексте запуска. Поэтому тяжёлые вычисления и запросы к источникам следует помещать в тело задачи, а не на верхний уровень файла DAG.