“Python Functools” Ответ

Python Functools

@cache
def factorial(n):
    return n * factorial(n-1) if n else 1

>>> factorial(10)      # no previously cached result, makes 11 recursive calls
3628800
>>> factorial(5)       # just looks up cached value result
120
>>> factorial(12)      # makes two new recursive calls, the other 10 are cached
479001600
Handsome Herring

Python Functools

import functools
import time

@functools.lru_cache(maxsize=256)
def find_user(name):
    # imitating slow search
    time.sleep(1)
    user = {"id": 11, "name": "Diane"}
    return user

find_user("Diane")
# kinda slow

find_user("Diane")
# blazingly fast
Puzzled Puffin

Ответы похожие на “Python Functools”

Вопросы похожие на “Python Functools”

Больше похожих ответов на “Python Functools” по Python

Смотреть популярные ответы по языку

Смотреть другие языки программирования