Discuss / Python / 是否retunr原函数为什么没有区别

是否retunr原函数为什么没有区别

Topic source
def log(text):
    def decorator(func):
        def wrapper(*args, **kw):
            print('%s %s():' % (text, func.__name__))
            return func(*args, **kw) # 改成 func (*args, **kw) 对结果没影响
        return wrapper
    return decorator

是否返回原函数对结果没影响,是因为在wrapper中直接调用原函数了,那么为什么要返回原函数,这俩种方法的差别只是体现在wrapper返回的是none么,反正已经执行了原函数,感觉对使用没有影响(知道这样写应该不对,但不知道到底为什么) 还请廖老师指点。

返回的不是原函数,是原函数执行后的结果,只是一个值,所以返回none也是可以的

灰_手

#3 Created at ... [Delete] [Delete and Lock User]

当然有影响,如果你定义的是纯函数,不加return根本取不到函数执行的结果,只会得到None


  • 1

Reply