У меня есть модуль с функцией, прототипом которой является похож на класс потока.
def do(fn, argtuple=(), kwargdict={}, priority=0,
block=False, timeout=0, callback=None, daemon=False)
# do stuff
fn - вызываемый объект, а argtuple и kwargdict - позиционные и словарные аргументы, которые будут переданы вызываемому fn при его вызове.
Теперь я пытаюсь написать декоратор для этого, но я запутался. Я никогда не очень хорошо разбирался в декораторах. Есть ли способ создать декоратор, в котором я мог бы установить параметры, указанные выше, такие как тайм-аут, но передать argtuple и kwargdict, когда функция вызывается.
Так, например:
@do(priority=2)
def decoratedTask(arg, dic=3):
#do stuff
decoratedTask(72)
Я не понимаю, как передать аргумент 72 времени выполнения декорированной функции. Я думаю, что декоратор должен быть классом, в котором метод __ call __
возвращает вызов функции, но я не уверен в синтаксисе того, как передавать такие аргументы.
Имеет ли это смысл?