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

Python中被装饰函数意外返回None的问题排查

装饰器导致函数返回None的问题解决

你的代码存在两个问题:

  • wrapper函数没有返回原函数的执行结果,Python函数若未显式写return语句,默认会返回None
  • 函数的名称属性是__name__而非name,直接调用func.name会触发AttributeError

修正后的代码如下:

def logger_decorator(func):
    def wrapper(*args, **kwargs):
        print(f"Calling {func.__name__} with {args}")
        result = func(*args, **kwargs)
        return result  # 传递原函数的返回值
    return wrapper

@logger_decorator
def add(x, y):
    return x + y

print(add(2, 3))  # 现在会输出5

运行修正后的代码,add(2,3)就能正确返回5了——wrapper函数现在会把原函数的执行结果返回,同时也修复了函数名称的调用错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 21:32:02