Как объяснить контекстный менеджер для транзакции?

PythonMiddle+Функции, декораторы и контекстТеорияpythonfunctionsdecoratorscontext-managerфункции-декораторы-и-контекстконтекст

Что хотят услышать интервьюеры:

Ответ для уровня Middle+: объяснение должно включать не только что такое контекстный менеджер для транзакции, но и когда его использовать, когда не использовать и как проверить корректность.

Ответ:

Ситуация: нужно переиспользовать поведение вокруг вызова функции, работы с ресурсом или ленивой обработки данных. В такой ситуации нужно найти источник проблемы, измерить эффект и выбрать минимально достаточное решение.

Сравнение: важно отличать контекстный менеджер для транзакции от ручной commit/rollback, потому что у них разные цели и trade-off.

Пример:

def deco(fn):<br>&nbsp;
&nbsp;
def wrapper(*args, **kwargs):<br>&nbsp;
&nbsp;
&nbsp;
&nbsp;
return fn(*args, **kwargs)<br>&nbsp;
&nbsp;
return wrapper

Хороший ответ: звучит через практику: ограничение, пример, типичная ошибка, тест или production-последствие.

Источники

Похожие вопросы