You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求解析装饰器工厂(Decorator Factory)的功能与实现示例

实现装饰器工厂 decorator_apply

需求

  • 装饰器工厂接收一个仅支持单个位置参数的函数(如示例中的lambda表达式)作为输入
  • 返回的装饰器会先执行被装饰函数,获取其返回值,再将该返回值传入工厂接收的函数中,最终返回这个函数的执行结果

示例代码

@decorator_apply(lambda user_id: user_id + 1)
def return_user_id(num: int):
    return num

return_user_id(42)  # 输出: 43

实现方案

def decorator_apply(func):
    def decorator(wrapped_func):
        def wrapper(*args, **kwargs):
            # 执行被装饰函数,拿到返回值
            result = wrapped_func(*args, **kwargs)
            # 用工厂传入的函数处理返回值并返回
            return func(result)
        return wrapper
    return decorator

代码说明

  1. decorator_apply 作为装饰器工厂,参数 func 是用来处理被装饰函数返回值的逻辑函数
  2. 内层的 decorator 是实际的装饰器,接收被装饰的函数 wrapped_func
  3. wrapper 函数负责调用被装饰函数,将其返回值传入 func 处理后返回最终结果

内容的提问来源于stack exchange,提问作者Yuliya Yeusiyevich

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 18:55:28