工厂接受一个函数(lambda)作为输入,并返回一个装饰器,它将返回函数的结果作为第一个参数。传递修饰函数的结果。工厂接受的函数(在下面的示例中,它是lambda)只能接受一个位置参数。
示例:
@decorator_apply(lambda user_id: user_id + 1)
def return_user_id(num: int):
return num
return_user_id(42)
>>>43发布于 2022-11-24 15:31:01
只需嵌套函数直到达到所需的深度,然后应用它们:
def decorator_apply(transform):
def wrapper(f):
def wrapped(x, /):
return f(transform(x))
return wrapped
return wrapper
@decorator_apply(lambda user_id: user_id + 1)
def return_user_id(num: int):
return num
return_user_id(42)https://stackoverflow.com/questions/74562575
复制相似问题