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

Приведи пример интересной фичи которую реализовал

Одна из интересных фич, которую я реализовал — это декоратор для кеширования результатов функции с автоматическим инвалидацией по времени. Особенность в том, что можно задать TTL (время жизни кеша), после которого данные автоматически обновляются.

python
import time
from functools import wraps

def cached(ttl):
    def decorator(func):
        cache = {}
        
        @wraps(func)
        def wrapper(*args, **kwargs):
            key = (args, frozenset(kwargs.items()))
            now = time.time()
            
            if key in cache:
                value, timestamp = cache[key]
                if now - timestamp < ttl:
                    return value
            
            result = func(*args, **kwargs)
            cache[key] = (result, now)
            return result
        
        return wrapper
    return decorator

Пример использования

@cached(ttl=10) # Кеш на 10 секунд
def expensive_operation(x):
print("Выполняю сложные вычисления...")
return x * x

text

Плюсы:
- Уменьшает нагрузку на тяжелые операции
- Прозрачная инвалидация
- Поддержка аргументов функции
- Чистый код благодаря декоратору

Особенно полезно для API-клиентов, парсеров и других операций, где данные могут устаревать, но не требуют мгновенного обновления.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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