Работа с функциями
В Python есть офигенная базовая библиотека для прокачки функций — functools. Эта библиотека для функций, которые воздействуют на другие функции или возвращают функции.
cache
Кэширует результат вызова функции. Если функция уже вызывалась, то нам сразу вернется ответ:
from functools import cache
@cache
def add(a: int, b: int) -> int:
return a + b
add(1, 2) # Здесь функция вычисляется
add(1, 2) # Сейчас возвращается предыдущий ответ
wraps
необходим для проброса описания хелперов и аргументов для декораторов
from functools import wraps
def based_on(base_func):
def _based_on_func(ext_func):
@wraps(base_func)
def _wrapper(*args, **kwargs):
return ext_func(base_func(*args, **kwargs))
return _wrapper
return _based_on_func
def _upload(name, content, *, test=False, **options):
...
@based_on(_upload)
def upload(resp):
...
Last updated