Назад к задачам
Junior
8

Типизированный декоратор с параметрами

Получайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Условие задачи

Напиши типизированный декоратор с параметрами. Такой, что он добавляет аргумент к декорируемой функции. Пример:


python 

from threading import Lock

my_lock = Lock()

@locked(my_lock)
def function1(lock: Lock, arg: int) -> int:
    return arg + 1

@locked(my_lock)
def function2(lock: Lock, name: str, surname: str) -> str:
    return name + surname

# Внутри 'locked' выполняется примерно такой код:
# python
# with passed_lock:
#     return function(passed_lock, *args, **kwargs)

# Вопрос со звёздочкой: как из него сделать и декоратор, и контекстный менеджер?

# Вопрос со звёздочкой: как из него сделать и декоратор, и контекстный менеджер?
# Вопрос со звёздочкой: как из него сделать и декоратор, и контекстный менеджер?

def locked(): # TOOO