Встречается на собеседованиях • сегодня

В чем разница между асинхронным контекстным менеджером и синхронным

Основное отличие в том, что асинхронный контекстный менеджер использует async with и должен реализовывать методы __aenter__ и __aexit__, тогда как синхронный использует with и методы __enter__, __exit__. Асинхронные менеджеры позволяют выполнять await внутри методов входа/выхода.

Пример синхронного:

python
class SyncManager:
    def __enter__(self):
        print("Entering")
        return self
    
    def __exit__(self, exc_type, exc_val, exc_tb):
        print("Exiting")

with SyncManager() as manager:
    print("Inside context")

Пример асинхронного:

python
class AsyncManager:
    async def __aenter__(self):
        print("Async entering")
        return self
    
    async def __aexit__(self, exc_type, exc_val, exc_tb):
        print("Async exiting")

async def main():
    async with AsyncManager() as manager:
        print("Inside async context")
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы